2017-05-05 11 views
0

データベースにusersテーブルがあり、新しいユーザーレコードごとにUUIDを設定する必要があります。mysqlの新しいユーザーのUUIDトリガー

DELIMITER ;; 
CREATE TRIGGER user_uuid 
BEFORE INSERT ON users 
FOR EACH ROW 
BEGIN 
    IF new.uuid IS NULL THEN 
    SET new.uuid = uuid(); 
    END IF; 
END 
;; 

私は上記のコードを使用し、phpMyAdminが設定されているかどうかを確認しました。それは設定されているようだが、ユーザ登録時にuuidカラムにUUID値を作成していない。

私のコードで何が間違っているのか分かりますか?ありがとうございました。

データタイプが必要な場合は、CHAR32データタイプにUUID値を格納しています。

+1

[いくつかの接頭辞を持つMySQLのテーブルの主キーの自動インクリメントの作り方](http://stackoverflow.com/questions/17893988/how-to-make-mysql-table -primary-key-auto-increment-with-some-prefix) – dearSympho

+0

ユーザを作成するときに 'UUID()'の値を挿入するだけではどうですか? – tadman

+0

なぜあなたは 'auto_increment'を使用していませんか? – Barmar

答えて

0

このコードは私にとって役に立ちました。あなたはこの質問をチェックアウトする場合があります

DELIMITER // 
CREATE TRIGGER before_insert_on_user_set_uuids 
    BEFORE INSERT ON users 
    FOR EACH ROW 
    BEGIN 
     SET new.uuid = uuid(); 
    END ; // 
DELIMITER ; 
関連する問題