36chr UUIDをBinary(16)として格納するためのこのアイデアはどうですか:
IMOにはLaravelがUUIDを生成しないという利点があります 。つまり、新しいレコード(将来のある日)がアプリケーションの外部からデータベースに挿入された場合、UUIDフィールドは適切に入力されます。
私の提案:移行を使用してUUIDデフォルト値トリガーを作成する
(このトリガーにより、データベースサーバーは、新しい顧客が挿入されるたびにUUIDを生成する作業を実行します)
<?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`');
}
}
最後に、人間が読める形式のUUIDを取得する場合は、次の手順を実行してください。
SELECT HEX(UUID) FROM customers;
とにかく、これが誰かに役立つことを願っています:-)