2016-06-16 6 views
0

テーブルのシーダーを作成しましたが、挿入しようとしている最初のレコードにID = 0があります。 IDは自動インクリメントフィールドであり、挿入されるとIDがチェックされ、0ではなく1になるので、ID 1のレコードを作成しようとすると次の行でブレークします。自動増分フィールドが0のシードテーブル

最初にIDが0であるレコードを挿入するにはどうすればよいですか?それが挿入された後、私は行を更新、Uueerdoの提案に、この作業のおかげを取得することができた

DB::table('payment_status')->delete(); 
DB::table('payment_status')->insert(array('id' => '0', 'name' => 'Initial')); 
DB::table('payment_status')->insert(array('id' => '1', 'name' => 'Payment successful, Waiting for Processing')); 
+0

(1

この

は私が持っているコードです。 )なぜあなたは自動インクリメントがそれを仕事にさせてくれませんか? (2)最初のレコードを0に更新できるはずです。(3)過去の経験から、私は自動増分フィールドで0を避けるでしょう。 MySQLのメンテナンスルーチンでは、自動インクリメントフィールドの値が0に固定されている必要があります。 – Uueerdo

+0

http://stackoverflow.com/questions/27000239/how-to-set-auto-increment-in-laravel-with-eloquent – Jackowski

+0

@Jackowskiさんの提案はうまくいかないようです。私はその値を0として同じテーブル・オプションを実行しようとしましたが、同じエラーが発生します。 – BlunT

答えて

0

DB::table('payment_status')->delete(); 
DB::table('payment_status')->insert(array('id' => '0', 'name' => 'Initial')); 
// id zero does not work 
DB::unprepared("UPDATE payment_status SET id=0"); 
DB::table('payment_status')->insert(array('id' => '1', 'name' => 'Payment successful, Waiting for Processing')); 
関連する問題