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;

どうすればいいですか?更新と挿入を2つのトリガーに吐き出そうとしましたが、1行しかインポートできません。また、phpページで更新を行い、更新後に挿入を実行しようとしましたが、それも1行しか実行されません。

このプロセスを自動化する別の方法があるかもしれません

4

1 に答える 1

2

IMHO、これにはトリガーは必要ありません。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 に答える