Есть такая таблица:
Schema::create('open_orders', function (Blueprint $table) {
$table->uuid('orderID');
$table->primary('orderID');
...
$table->string('transactTime');
$table->timestamps();
});
Периодически нужно синхронить в нее данные использую updateOrCreate:
$active_orders = $this->api->getOpenOrders();
foreach ($active_orders as $order)
{
Orders::updateOrCreate([
'orderID' => $order['orderID'],
...
'transactTime' => $order['transactTime']
]);
}
Итого, первый раз запись создается, а со второго:
Integrity constraint violation: 1062 Duplicate entry '0b357043-4699-83d8-7118-c5a369b3ef75' for key 'PRIMARY'...
Подскажите, что я делаю не так, ведь после первой вставки, если запись существует то ее должно просто обновлять...
В документации же написано всё:
If the model can not be found in the database, a record will be inserted with the attributes from the first parameter, along with those in the optional second parameter.
Так же это написано в API:
Create or update a record matching the attributes, and fill it with values.
В вашем случае нужно orderID
только оставлять в первом параметре, остальные выносить во второй параметр:
Orders::updateOrCreate(['orderID' => $order['orderID']],
[
...
'transactTime' => $order['transactTime']
]);
В таком случае будет поиск только по orderID
и метод будет работать правильно.
Скорее всего PRIMARY ключ не меняется, но и из-за того что меняется хоть одно поле в массиве у updateOrCreate
, функция пытается создать новую запись, а PRIMARY ключ повторяется.
Понять как работает метод изнутри помогут две ссылки:
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Database/Eloquent/Builder.php#L428 https://github.com/laravel/framework/blob/5.7/src/Illuminate/Database/Eloquent/Builder.php#L394
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пользователь вводит произвольную формулу, которая сохраняется в БДВ формуле есть подстановки значений из последующих форм, к примеру:
Сейчас есть 2 таблицы, которых в дальнейшем будет 13Каждая таблица абсолютно идентична по структуре, каждая проиндексирована по нужным параметрам...
Всем привет, начал проект на yii 2, теперь хочу его разместить на поддомене, только не получается никак правильно настроитьhtaccess Сейчас нормально...