【问题标题】:Trigger for after large upload大上传后触发
【发布时间】:2012-12-12 00:00:39
【问题描述】:

我有一个将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 行。

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

【问题讨论】:

    标签: mysql sql triggers automation


    【解决方案1】:

    恕我直言,您不需要为此触发。只需从您的 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-24
      • 2016-10-22
      • 2014-07-12
      • 2017-08-21
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多