Таблица заполнения с полем автоинкремента, равным нулю

Я создал сидер для таблицы, и первая запись, которую я пытаюсь вставить, имеет идентификатор = 0. Идентификатор является полем с автоматическим увеличением, и когда он вставляется, я проверяю его идентификатор, и он равен 1 вместо 0, поэтому сидер прерывается на следующей строке, когда я пытаюсь создать запись с идентификатором 1.

Как я могу вставить несколько записей, первая из которых имеет идентификатор 0?

Это код, который у меня есть:

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'));

person Miguel Mesquita Alfaiate    schedule 16.06.2016    source источник
comment
(1) Почему бы вам не позволить автоинкременту делать свою работу? (2) Вы должны иметь возможность ОБНОВИТЬ первую запись до 0. (3) Исходя из прошлого опыта, я бы избегал 0 в полях автоинкремента; Подпрограммы обслуживания MySQL видят значение 0 в поле автоинкремента как нечто, что требует исправления.   -  person Uueerdo    schedule 16.06.2016
comment
stackoverflow .com/questions/27000239/   -  person Jackowski    schedule 16.06.2016
comment
@ Джековски это предложение, похоже, не работает. Я попытался запустить эту опцию изменения таблицы со значением, равным нулю, и произошла та же ошибка.   -  person Miguel Mesquita Alfaiate    schedule 16.06.2016
comment
@Uueerdo спасибо за предложение, потом я обновил строку!   -  person Miguel Mesquita Alfaiate    schedule 16.06.2016


Ответы (1)


Я смог заставить это работать благодаря предложению Uueerdo, обновляя строку после того, как она была вставлена:

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'));
person Miguel Mesquita Alfaiate    schedule 16.06.2016