从本地文件更新MySQL表
我在数据库中有一个表,我想更新一个本地文件中脱机的列。文件本身有两列从本地文件更新MySQL表,mysql,sql,Mysql,Sql,我在数据库中有一个表,我想更新一个本地文件中脱机的列。文件本身有两列 对应于表中ID列的ID,以及 实际值 我已经能够使用 LOAD DATA INFILE 'file.txt' INTO TABLE table FIELDS TERMINATED BY ',' 但我不确定如何具体地插入值,使文件中的ID列与表中的ID列相连接。有人可以帮助您使用SQL语法吗?我建议您将数据加载到一个临时表中,然后使用插入。。。选择。。。在重复密钥更新时;例如: CREATE TEMPORARY TABLE
LOAD DATA INFILE 'file.txt' INTO TABLE table
FIELDS TERMINATED BY ','
但我不确定如何具体地插入值,使文件中的ID列与表中的ID列相连接。有人可以帮助您使用SQL语法吗?我建议您将数据加载到一个临时表中,然后使用
插入。。。选择。。。在重复密钥更新时
;例如:
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;
另一种方式可能是 因为您已经知道了表名,并且有ID和实际值。。。你能做的是。。。直接在文件中写入update语句,如
update mytable set value_col = value where ID_col = ID;
Second Update Statement
Third Update statement
.......
将文件另存为*.sql
like,updatescript.sql
,然后像
mysql -h <hostname> -u root -p <your_db_name> < "E:/scripts/sql/updatescript.sql"
mysql-h-u root-p<“E:/scripts/sql/updatescript.sql”
这取决于行数,
如果是成百上千,则创建更新列脚本并运行它,但如果是大容量,则将该文件导入到新表中,并使用联接更新表,然后删除该表