Laravel 5
Ошибка Unique violation: 7 ERROR: duplicate key value violates unique constraint
Eloquent и Laravel обычно здесь ни при чем. Скорее всего, в базу были добавлены записи с явным указанием идентификатора. При последующих добавлениях с автоинкрементом база данных не знает, с какого id начинать.
Решение – явно указать стартовое id.
1 2 3 4 5 6 7 8 9 10 11 |
\Schema::table('table_name', function (Blueprint $table) use ($model) { $connection = $model::resolveConnection(); $manager = $connection->getDoctrineSchemaManager(); $sequence = $manager->getDatabasePlatform()->getIdentitySequenceName($table->getTable(), $model->getKeyName()); $max = $connection->select(sprintf('SELECT MAX(id) AS value FROM %s', $table->getTable()))[0]->value; $connection->select("SELECT SETVAL('{$sequence}', {$max})"); }); |