Laravel — нарушение ограничения целостности: 1062 Повторяющаяся запись «0» для ключа «ПЕРВИЧНЫЙ».MySql

Форум по Mysql
Ответить
Anonymous
 Laravel — нарушение ограничения целостности: 1062 Повторяющаяся запись «0» для ключа «ПЕРВИЧНЫЙ».

Сообщение Anonymous »

Я столкнулся с такой проблемой: «SQLSTATE[23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись '0' для ключа 'PRIMARY' (SQL: вставить в значения ролей (имя, business_ids, Guard_name, Updated_at, Created_at) ( abcd#1234, 1234, веб, 06.01.2025 13:29:42, 2025-01-06 13:29:42))"
Я использую библиотеку Spatie для создания ролей и столкнулся с вышеуказанной проблемой. Когда я регистрирую ошибку, она показывает, что идентификатор равен 0 и он дублируется. Я пробовал использовать DB::beginTransaction();, но это неэффективно. Мне нужен совет, как с этим справиться.

Код: Выделить всё

DB::beginTransaction();
$this->businessUtil->newBusinessDefaultResources($business->ids, $user->id);
DB::commit();

Код: Выделить всё

use Spatie\Permission\Models\Role;
public function newBusinessDefaultResources($business_ids, $user_id, $business_category_id=null)
{
$role = Role::create([ 'name' => 'abcd#' . $business_ids,
'business_id' => $business_ids,
'guard_name' => 'web', 'is_default' => 1
]);
$user->assignRole($role->name);

//Create Cashier role for a new business
$c_role = Role::create([ 'name' => 'abcde#' . $business_ids,
'business_ids' => $business_ids,
'guard_name' => 'web'
]);

//Create Tutor role for a new business
$p_role = Role::create(['name' => 'abcdef#' . $business_ids,
'business_ids' => $business_ids,
'guard_name' => 'web',
'is_default' => 1
]);
dd(1);
Похоже, проблема связана с автоматическим увеличением первичного ключа в вашей таблице ролей. Ошибка предполагает, что несколько записей пытаются использовать идентификатор 0, что нарушает ограничение первичного ключа.
Я пробовал использовать DB::beginTransaction();, но это не так. эффективен

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-key-prim
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»