繁体   English   中英

MySQL在tbl1中插入时创建触发器也插入到tbl2中

[英]MySQL create trigger on insert in tbl1 also insert to tbl2

我目前正在与一个客户合作,希望他们的数据库在最初插入数据库时​​将信息以另一种格式复制到另一个表中。

基本上像下面这样:

表格1

| ID |  NAME    | EMAIL  |  password  |  
--------------------------------------
|  1 |    david | x@x.co |  asx234    | 
|  2 |  anthony | y@x.co |  24gss3    |
|  3 |  jillian | z@x.co |  hdfg5d    |

每次将一行插入表1中时,他们还希望从表1中获取该信息并将其添加到表2中。

表2

| ID |  NAME    | EMAIL  |  password  |  signature  |  level  |  lastenter  |  register_date  |
-----------------------------------------------------------------------------------------------
|  1 |    david | x@x.co |  asx234    |  text       |  3      |  0000-00-00 |  Date of insert | 
|  2 |  anthony | y@x.co |  24gss3    |  text       |  3      |  0000-00-00 |  Date of insert |
|  3 |  jillian | z@x.co |  hdfg5d    |  text       |  3      |  0000-00-00 |  Date of insert |

如何设置触发器,以便每当在表1中插入一行时就将数据插入表2中?

谢谢!

以下是一些想法,但是触发器看起来像这样:

 DELIMITER $$

 DROP TRIGGER IF EXISTS trgMyNewTrigger $$

 CREATE TRIGGER trgMyNewTrigger AFTER INSERT ON Table1
 FOR EACH ROW
 BEGIN
     INSERT into Table2 (ID,NAME,EMAIL,`password`,signature,`level`,lastenter,register_date) VALUES (
        new.ID, new.NAME, new.EMAIL, new.password, 'text', 3, '0000-00-00', CURDATE() );
 END $$

 DELIMITER ;

这不是一个很好的解决方案。 触发器通常会引起一些麻烦的问题,并限制您的能力。 最好重新考虑表的设计,使其包含所需的数据,让应用程序执行额外的步骤,或者使用某种ETL过程按设置的时间间隔获取数据。

我都会以明文密码为例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM