【发布时间】:2012-09-17 16:20:35
【问题描述】:
我正在使用“LOAD DATA LOCAL INFILE”将 csv 文件导入数据库表。好奇心的完整查询是:
LOAD DATA LOCAL INFILE '".addslashes($current_file)."' REPLACE INTO TABLE $current_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '" . '"' . "' ESCAPED BY " . "'\\\\'" . " LINES TERMINATED BY '\n' IGNORE 1 LINES ($toVars) SET $setCols
现在,简而言之,就是将 csv 行加载到 table_A 中。我想要做的是创建一个内存表,它将记录曾经输入到table_A 的每一行。我将使用 MYSQL 触发器 来实现这一点。现在我熟悉使用带有inserts 的触发器来执行。我的问题是;如何为LOAD DATA LOCAL INFILE 命令创建AFTER 触发器?
只有在LOAD DATA LOCAL INFILE 查询完成所有操作后,触发器才会触发。它不应该在每个增量插入或任何情况下触发。
【问题讨论】:
-
mysql中还没有语句级触发器...
-
在 LOAD DATA LOCAL INFILE 之后运行你的 stetement。
-
@Devart 那不是我想做的。我想在我的数据库中设置触发器,这将有助于在 mysql 级别而不是 php 级别进行数据移动。我的印象是从 MySQL 5.0.2 版本开始支持语句?我已经可以在触发器中使用 WHERE 和 OR 等语句了。
标签: mysql sql database triggers