Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql加载数据填充保留不变字段_Mysql_File Upload_Mariadb - Fatal编程技术网

Mysql加载数据填充保留不变字段

Mysql加载数据填充保留不变字段,mysql,file-upload,mariadb,Mysql,File Upload,Mariadb,假设我有一个包含三个字段的MySQL表:key、value1、value2 我想从文件inserts.txt加载两个字段(key,value1)的数据。 inserts.txt的内容: 1;2 3;4 与: 但在替换的情况下,我希望保持值2不变 如何实现这一点?替换语句包含以下算法: MySQL使用以下算法进行替换(并加载数据…替换): 尝试将新行插入表中 而插入失败,因为发生了重复的密钥错误 主键或唯一索引: 从表中删除具有重复键的冲突行 价值观 请重试将新行插入表中 () 因此,您不能

假设我有一个包含三个字段的MySQL表:key、value1、value2

我想从文件inserts.txt加载两个字段(key,value1)的数据。 inserts.txt的内容:

1;2
3;4
与:

但在替换的情况下,我希望保持值2不变


如何实现这一点?

替换语句包含以下算法:

MySQL使用以下算法进行替换(并加载数据…替换):

尝试将新行插入表中

而插入失败,因为发生了重复的密钥错误 主键或唯一索引:

  • 从表中删除具有重复键的冲突行 价值观

  • 请重试将新行插入表中

()

因此,您不能保留要删除的行中的值

您要做的是模拟“重复密钥更新”逻辑

不能在单个加载数据查询中执行此操作。您需要做的是首先将数据加载到临时表中,然后从临时表插入到目标表,这样您就可以使用“复制密钥更新”功能

整个过程在这个问题的最上等答案中有充分的详细说明:

LOAD DATA LOCAL INFILE 
   "inserts.txt"
REPLACE
INTO TABLE 
    `test_insert_timestamp`
FIELDS TERMINATED BY ';'