用于加载数据infile的mysql触发器

时间:2012-04-27 22:29:46

标签: mysql triggers load-data-infile

每当在'table1'中插入新行时,我一直很难弄清楚如何让'table2'根据'table1'中的值更新其值。根据插入到table1中的内容,触发器可能需要在表2中插入新行,或者只更新table2中现有行中的值。我使用'load data infile'和文本文件一次在'table1'中插入几千行。如果可能的话,我希望在将整个文件插入“table1”之后,而不是在插入每一行之后,对表2进行更新。任何帮助将不胜感激。下面我已经包含了table1中的定义以及table2中我需要的内容。

//Table1
create table table1 (
V1 varchar(5),
V2 varchar(5),
V3 date,
V4 double,
V5 date,
V6 double,
V7 double,
Primary Key (V1,V2,V3,V4,V5) );

//Table2
V1 - Same as table1
V2 - Same as table1
V3 - Same as table1
V4 - Same as table1
V5 date - minimum of V5 in table1
V6 date - maximum of V5 in table1

1 个答案:

答案 0 :(得分:1)

作为我自己问题的部分答案,我发现从MySQL版本5.6(最新版本)触发器只能配置为在插入每一行后运行。如果正在使用load data infile,则无法将触发器配置为在插入整个文件之后而不是在每行之后运行。

希望以后能够扩展。由于语法现在正好,当您创建触发器时,您必须包含短语FOR EACH ROW。如果省略该短语,则会出现错误,但没有其他选项,例如FOR EACH 10 ROWSFOR EACH FILE

相关问题