1

我有一个将 txt 文件上传到表格中的 php 页面,

$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 行。

也许还有另一种方法可以自动化这个过程

4

1 回答 1

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);
于 2012-12-22T00:19:18.150 回答