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

标签 php mysql batch-file sql-update delimiter

我正在尝试从每 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/

相关文章:

php - 使用 XPath 获取最高值节点

php - 从html表格单元格分配php变量值

java - 进程和退出代码

batch-file - 为什么我在运行此脚本时无法在 Python 中加载 _tkinter 模块?

windows - 如何根据名称和日期更改多个文件名

PHP Mysql If 语句不起作用

php - 使用不带时间的 DATETIME 的 MYSQL SELECT 语句

javascript - javascript 表单提交后的 Onsubmit 事件

php - 我的代码只连接到本地主机 mysql 服务器,但不连接到远程服务器

javascript - 解决node-mysql初始化错误?