MySQL下面如何创建这样的一个触发器?

哎呀,其实我以前也遇到过这个问题。
记得有一次,一个哥们写了一条SQL语句,用new作为表名。
结果,数据库中根本不存在该表。
编译没问题,但是一运行触发器就报错,说找不到新表。
我当时就不明白,怎么会出现这样的错误呢?
后来仔细一看,发现他想用新表插入数据,但是在触发器中,却找不到新表。
就像你去超市买东西,货架上没有你想要的东西,所以你空手而归。

该怎么办? 我建议他把每个字段都写出来,像这样:insert into ct_master1 (c1 ,c2 ,c3 )values(new.c1 ,new.c2 ,new.c3 ); 虽然这样写比较麻烦,但至少不会出错。

不过,后来我想到了一个更简单的方法。
我告诉他,你可以在插入数据的时候设置一个唯一的值,比如id。
这样就可以通过这个id来定位要插入的数据了。
因此,原来的insert语句变成:insert into ct_master1 select from ct_master where ct_master.id = NEW.id; 这样,问题就解决了。

说实话,这个方法还是蛮实用的。
使用的人越多,操作数据库就越容易。
不过,使用哪种方法取决于个人习惯和需求。

mysql创建一个触发器,求助

嘿,其实我以前也遇到过这种触发的事情。
记得那是2 01 6 年的时候,我在一家小公司做数据库维护。
当时我们使用的MySQL版本还是5 .6 有一次,一位同事让我帮忙写一个触发器。
目的是在插入订单信息时在命令行输出订单号。

我也是按照你说的例子写的,但是编译失败。
我当时也很头疼,因为我确实没有太多这方面的经验,所以不敢乱说。
后来查资料发现MySQL触发器不支持直接输出到命令行,只能通过存储过程中的SELECT语句输出。

最后我是这样解决的:我写了一个存储过程,将订单信息插入到存储过程中,然后通过SELECT语句输出订单号。
虽然不是直接在触发器中输出,但至少达到了目的。
那次经历让我对MySQL触发器有了更深入的了解。

顺便说一句,我尝试了你提到的例子,但确实无法编译。
不过,你可以尝试在触发器中添加一个日志表,将订单号插入到日志表中,然后在命令行中查询日志表,查看订单号。
然而,这只是权宜之计。
毕竟触发器的主要目的是保证数据的一致性和完整性,而不是输出信息。