Vad sägs om den här idén för att lagra en 36chr UUID som binär(16) :
IMO finns det en fördel med att inte ha Laravel som genererar UUID . Nämligen, om nya poster (någon dag i framtiden) infogas i databasen utanför applikationen är UUID-fältet korrekt ifyllt.
Mitt förslag:Skapa en UUID-standardvärdesutlösare med hjälp av migrering
(denna trigger gör att databasservern gör jobbet för att generera UUID varje gång en ny kund infogas)
<?php namespace MegaBank\HighInterestLoans\Updates;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class MigrationTriggerForCustomers extends Migration
{
public function up()
{
DB::unprepared('CREATE TRIGGER before_insert_customers
BEFORE INSERT ON
`megabank_highinterestloans_customers`
FOR EACH ROW
SET new.uuid = UNHEX(REPLACE(UUID(), "-","");');
}
public function down()
{
DB::unprepared('DROP TRIGGER `before_insert_customers`');
}
}
Slutligen, om du vill skaffa en läsbar version av ditt UUID gör du bara följande:
SELECT HEX(UUID) FROM customers;
Hur som helst, hoppas detta hjälper någon :-)