在PHP中使用带不同分隔符的触发器更新mySQL表数据

在PHP中使用带不同分隔符的触发器更新mySQL表数据,php,mysql,batch-file,sql-update,delimiter,Php,Mysql,Batch File,Sql Update,Delimiter,我正在尝试从一个csv文件对我的mySQL表进行批量更新,该文件每24小时更新一次。如何从csv更新整个表,但忽略过去24小时内未更改的重复值?因此,如果客户的电话号码发生变化,则会更新,但他们的姓名会被忽略,如果没有发生变化,则会保持不变 我使用的表是InnoDB 可能不会有什么不同,但我的批处理脚本是用php编写的 谢谢 懒汉 更新: 这是到目前为止我的代码,由于分隔符“;”我得到了一个错误。您似乎无法在PHP中更改这些。有人知道附近的工作吗 CREATE TRIGGER `after_in

我正在尝试从一个csv文件对我的mySQL表进行批量更新,该文件每24小时更新一次。如何从csv更新整个表,但忽略过去24小时内未更改的重复值?因此,如果客户的电话号码发生变化,则会更新,但他们的姓名会被忽略,如果没有发生变化,则会保持不变

我使用的表是InnoDB

可能不会有什么不同,但我的批处理脚本是用php编写的

谢谢

懒汉

更新:

这是到目前为止我的代码,由于分隔符“;”我得到了一个错误。您似乎无法在PHP中更改这些。有人知道附近的工作吗

CREATE TRIGGER `after_insert_customertemp` AFTER INSERT ON customertemp
        FOR EACH ROW
            BEGIN
                IF (NEW.customerRank != (SELECT customerRank FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerRank = customer.customerRank
                END IF;

                IF (NEW.customerCode != (SELECT customerCode FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerCode = customer.customerCode
                END IF;

                IF (NEW.customerName != (SELECT customerName FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerName = customer.customerName
                END IF;

                IF (NEW.customerEmail != (SELECT customerEmail FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerEmail = customer.customerEmail
                END IF;

                IF (NEW.customerAddress != (SELECT customerAddress FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerAddress = customer.customerAddress
                END IF;

                IF (NEW.customerAdded != (SELECT customerAdded FROM customer WHERE customer.id = NEW.id)) THEN
                    SET NEW.customerAdded = customer.customerAdded
                END IF;
            END;

您可以创建一个临时表(例如:yourtable\u tmp),在其中您可以导入csv数据,并在插入后创建触发器,以更新您的条件,然后截断临时表。

感谢您的快速响应!我现在已经在制作临时表了,我面临的问题是如何编写触发器,你是否有可能对语法的工作原理有更多的了解,文档相当混乱。谢谢这是一个触发器的例子,我用我的代码更新了我的问题。尝试在PHP脚本中运行此脚本时出错。这取决于分隔符,这在PHP中是不可能的。你知道附近有什么工作吗?谢谢。在开始处添加
分隔符$$
,然后添加
$$DELIMITER并在phpmyadmin中运行所有