mysql - 从本地文件更新 MySQL 表

标签 mysql sql

我在数据库中有一个表,我想更新一个在本地文件上脱机的列。文件本身有两列

  1. 与表中 ID 列对应的 ID,以及
  2. 实际值。

我已经能够使用

创建新行
LOAD DATA INFILE 'file.txt' INTO TABLE table
  FIELDS TERMINATED BY ','

但我不确定如何以文件中的 ID 列连接到表中的 ID 列的方式专门插入值。有人可以帮助 SQL 语法吗?

最佳答案

我建议您将数据加载到临时表中,然后使用INSERT ... SELECT ... ON DUPLICATE KEY UPDATE;例如:

CREATE TEMPORARY TABLE temptable (
  id  INT UNSIGNED NOT NULL,
  val INT,
  PRIMARY KEY (id)
) ENGINE = MEMORY;

LOAD DATA LOCAL INFILE '/path/to/file.txt' INTO temptable FIELDS TERMINATED BY ',';

INSERT INTO my_table
SELECT id, val FROM temptable
ON DUPLICATE KEY UPDATE val = VALUES(val);

DROP TEMPORARY TABLE temptable;

关于mysql - 从本地文件更新 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680162/

相关文章:

MySql 计算包含某个值的行组数量

SQL 到 UML 图或图形工具

python - Django 的逻辑或多对多查询返回重复结果

mysql - 在 MySQL 中,如何更新一批字段以将它们的值与同一个表中对应于entity_id的值连接起来?

mysql - 自动更新队列优先级

mysql - 如何在mySQL中将文本列值从一行复制到另一行

php - 显示来自数据库的 DD/MM/YYYY PHP 回显

mysql - 在 MySQL 中按照用户定义的顺序对列进行排序

php - 将数组从 SQL 传递到 Swiftmailer

php - sql BEGIN 创建错误