我有一个php页面,可以将txt文件上传到表格中,
$sql = "LOAD DATA LOCAL INFILE 'data.txt'
REPLACE
INTO TABLE tempdirtySI
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
";
我希望在导入包含此代码的所有数据后运行触发器。
UPDATE tempdirtysi
SET TIMESTAM = DATE_FORMAT(STR_TO_DATE(TIMESTAM, '%m/%d/%Y %H:%i:%s'), '%Y-%m-%d %H:%i:%s');
INSERT INTO temploadsi
SELECT * FROM tempdirtysi;
TRUNCATE tempdirtysi;
我该如何解决这个问题?我试图将更新和插入吐出到两个触发器中,并且只允许导入一行。我还尝试在php页面中进行更新,并在更新后运行插入,但这也只运行1行。
也许有另一种方法可以自动化这个过程
答案 0 :(得分:2)
恕我直言,你不需要触发这个。只需从PHP代码中依次执行sql命令。
$db = new mysqli('host', 'username', 'password', 'database');
$sql = 'LOAD DATA LOCAL...';
$db->query($sql);
$sql = 'UPDATE tempdirtysi SET ...';
$db->query($sql);
$sql = 'INSERT INTO temploadsi SELECT * FROM tempdirtysi';
$db->query($sql);
$sql = 'TRUNCATE tempdirtysi';
$db->query($sql);