【问题标题】:trigger in mysql between two database in mysql在mysql中的两个数据库之间触发mysql
【发布时间】:2015-11-07 11:04:48
【问题描述】:

当一行插入到 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 中写的是什么??

【问题讨论】:

  • ??? 更改为:NEW.id, NEW.email, NEW.password,了解两个数据库的两个表中的列名相同。
  • @wchiquito 这是在本地工作,但用户 root 没有密码,但在服务器中为两个数据库设置了用户和密码,这个触发器不起作用!帮助我!
  • 产生错误?
  • 不在 db2 中插入任何数据
  • 查看答案中的示例。

标签: mysql triggers


【解决方案1】:

查看示例:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-04
    • 2022-11-04
    • 2017-11-13
    • 2012-04-03
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多