Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на UUID като първичен ключ с Laravel 5

Какво ще кажете за тази идея за съхраняване на 36chr UUID като двоичен(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;

Както и да е, надявам се това да помогне на някого :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам Django с наследени таблици на база данни само за четене със съставни първични ключове?

  2. Форматиране на резултатите от MySQL заявка, сякаш се изпълнява от конзолата

  3. Защо MySQL напълно преформатира текста на заявката VIEW?

  4. Каква е най-добрата практика за ограничаване на конкретни страници до влезли потребители само в Codeigniter?

  5. как да стартирате Mysql в git bash в Windows 8.1