gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:49:27 24 4
gpt4 key购买 nike

我正在尝试从每 24 小时更新一次的 csv 文件对 mySQL 表运行批量更新。我将如何从 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_tmp),在其中导入 csv 数据并在插入后创建触发器以根据您的条件进行更新,然后截断临时表。

关于php - 在 PHP 中使用触发器和不同的分隔符更新 mySQL 表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24996474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com