当一行插入到 db1 中的 tbl1 时,我需要两个数据库之间的触发器,该行插入到 db2 中的 tbl2。
CREATE TRIGGER `update_users` AFTER INSERT ON `db1`.`tbl1`
FOR EACH ROW INSERT INTO `db2`.`tbl2` (id,email,password)
VALUES
(???)
VALUES里写的是什么??
最佳答案
看例子:
mysql> CREATE DATABASE `db1`;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE DATABASE `db2`;
Query OK, 1 row affected (0.00 sec)
mysql> USE `db1`;
Database changed
mysql> CREATE TABLE `tbl1` (
-> `id` INT UNSIGNED,
-> `email` VARCHAR(255),
-> `password` VARCHAR(255)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> DELIMITER //
mysql> CREATE TRIGGER `update_users` AFTER INSERT ON `tbl1`
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO `db2`.`tbl2` (`id`, `email`, `password`)
-> VALUES
-> (NEW.`id`, NEW.`email`, NEW.`password`);
-> END//
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql> USE `db2`;
Database changed
mysql> CREATE TABLE `tbl2` (
-> `id` INT UNSIGNED,
-> `email` VARCHAR(255),
-> `password` VARCHAR(255)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> USE `db1`;
Database changed
mysql> INSERT INTO `tbl1` VALUES (1, 'email@email.net', 'secret');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT `id`, `email`, `password` FROM `tbl1`;
+------+-----------------+----------+
| id | email | password |
+------+-----------------+----------+
| 1 | email@email.net | secret |
+------+-----------------+----------+
1 row in set (0.00 sec)
mysql> SELECT `id`, `email`, `password` FROM `db2`.`tbl2`;
+------+-----------------+----------+
| id | email | password |
+------+-----------------+----------+
| 1 | email@email.net | secret |
+------+-----------------+----------+
1 row in set (0.00 sec)
关于mysql - 在mysql中的两个数据库之间在mysql中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581980/