php - How to correctly use Laravel with SQL Server instead on MySQL? -
i trying use sql server databases laravel project. able connect sql server laravel 5.2. however, when try seed data table error
[illuminate\database\queryexception] sqlstate[23000]: [microsoft][sql server native client 11.0][sql server]cann ot insert explicit value identity column in table 'surveys' when identity_insert set off. (sql: insert [surveys] ([id], [name]) values (10, 'some text')) note: trying supply identity value causing problem.
while researching sql error, learned need execute following queries.
before seeding need execute
set identity_insert surveys on; after seeding need execute
set identity_insert surveys off; but not sure how can execute these command using laravel
how can seed while supplying value identity column without issue?
updated here seeder
<?php use illuminate\database\seeder; class finalsurveyts extends seeder { /** * run database seeds. * * @return void */ public function run() { $mytable = 'surveys'; db::statement('set identity_insert ' . $mytable . ' on'); db::table($mytable)->truncate(); db::table($mytable)->insert([ 'id' => 10, 'name' => 'some name', ]); db::statement('set identity_insert ' . $mytable . ' off'); } }
here found.
laravel not support raw statement inside of transaction.
any raw statement executed separately separate connection database.
the means when executing
db::statement('set identity_insert surveys on;'); db::table(...)->insert(...);db::table(...)->insert(...);db::table(...)->insert(...); db::statement('set identity_insert surveys on;'); ..
laravel process 3 different database connection. means second statement never aware of first or third transaction. there first line have no affect ever in case.
the work around problem "until laravel adds support raw statement transaction" create insert statement raw query so
db::statement(' set identity_insert surveys on; inert table(id, col1, col2) values(10, 'blah','blah'), (11, 'blah','blah'), (12, 'blah','blah'); set identity_insert surveys off; '); i hope post helps else.
Comments
Post a Comment