1
업데이트 후 생성되는 해시를 얻으려면 어떻게해야합니까?업데이트 전 구문으로 해시를 생성하는 트리거
[email protected]:~$
[email protected]:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 138
Server version: 5.1.58-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use nntp;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------+
| Tables_in_nntp |
+---------------------+
| articles |
| newsgroups |
| newsgroups_articles |
+---------------------+
3 rows in set (0.00 sec)
mysql> describe newsgroups;
+-----------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| newsgroup | longtext | NO | | NULL | |
| hash | char(32) | NO | | NULL | |
+-----------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
mysql> show triggers;
+-----------+--------+------------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
+-----------+--------+------------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
| make_hash | INSERT | newsgroups | BEGIN
set new.hash = md5(new.newsgroup);
END | BEFORE | NULL | | [email protected] | utf8 | utf8_general_ci | latin1_swedish_ci |
+-----------+--------+------------+-----------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql> DELIMITER $$
mysql>
mysql> USE `nntp`$$
Database changed
mysql> CREATE
-> TRIGGER `nntp`.`make_hash_update`
-> AFTER UPDATE ON `nntp`.`newsgroups`
-> FOR EACH ROW
-> BEGIN
-> set old.hash = md5(new.newsgroup);
-> END$$
ERROR 1362 (HY000): Updating of OLD row is not allowed in trigger
mysql>
mysql> quit;
-> exit
-> ^CCtrl-C -- exit!
Aborted
[email protected]:~$
또한, 워크 벤치에서, 나는 이전 트리거 참조 :
을 수 있지만 추가적인 트리거를 추가하는 방법을 볼 수 없습니다.