-
Notifications
You must be signed in to change notification settings - Fork 11.5k
Closed
Description
- Laravel Version: 5.4
- PHP Version: 7.1
- Database Driver & Version: MySQL 5.7
Description:
I want to save mobile devices information in the database using their UUIDs. The uuid
field has a unique index. The code is:
$device = Device::updateOrCreate(
['uuid' => $request->input('uuid')],
[
'info' => $request->input('info'),
]
);
But I'm getting a lot of errors in logs:
Next Doctrine\DBAL\Driver\PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'aa18269c-cf32-4c6b-b450-e84a5dba0a0c' for key 'devices_device_uuid_unique' in /var/www/api/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:93
Stack trace:
I also tried to use firstOrNew:
$device = Device::firstOrNew(['uuid' => $request->input('uuid')]);
$device->info = $request->input('info');
$device->save();
But it's equal I guess.
If I remove the unique index from the uuid
field the problem is gone but I get duplicate entries. That's strange because I thought updateOrCreate
method guarantees uniqueness of the entries.
Is it a bug of the updateOrCreate
method?
holuborhee, didioh, defaultpage, JCarlosR, hossein and 8 more
Metadata
Metadata
Assignees
Labels
No labels