本当にトリガーが必要ですか?あなたが挿入/更新文を制御していない場合
mysql> insert into t4 (uemail, upassword, uname) SELECT @email:='[email protected]', 'secretpassword', ifnull(null, @email);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from t4 where uemail='[email protected]';
+-------------+----------------+-------------+
| uname | upassword | uemail |
+-------------+----------------+-------------+
| [email protected] | secretpassword | [email protected] |
+-------------+----------------+-------------+
1 row in set (0.00 sec)
:あなたは(あなたはORMを使用しているではない可能性がある場合)あなたの挿入や更新の文を管理している場合は、このような何かを行うことができます、はい、そのためにトリガーを使用できます:
mysql> create trigger setuname before insert on t4
-> for each row begin
-> set new.uname=ifnull(new.uname, new.uemail);
-> end;
-> |
Query OK, 0 rows affected (0.09 sec)
mysql> delimiter ;
mysql> insert into t4 (uname, uemail, upassword) values (null, '[email protected]', 'secretpassword');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t4;
+-------------+----------------+-------------+
| uname | upassword | uemail |
+-------------+----------------+-------------+
| [email protected] | secretpassword | [email protected] |
+-------------+----------------+-------------+
1 row in set (0.00 sec)