Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 INSERT SELECT语句引发错误1062:键2的重复项“”_Mysql_Select_Insert_Reverse - Fatal编程技术网

MySQL INSERT SELECT语句引发错误1062:键2的重复项“”

MySQL INSERT SELECT语句引发错误1062:键2的重复项“”,mysql,select,insert,reverse,Mysql,Select,Insert,Reverse,基本上,我有一个名为document的表,其中包含一个名为host的列。我已经创建了另一个名为rev_host的列,我只想在主机和rev_主机之间存储反向字符串。例如,如果主机值为www.cmu.edu,我想将ude.umc.www保存到rev_主机。然后我使用一个语句 INSERT INTO document (rev_host) SELECT REVERSE(host) from document; 此语句引发1062错误: ERROR 1062 (23000): Duplicate en

基本上,我有一个名为document的表,其中包含一个名为host的列。我已经创建了另一个名为rev_host的列,我只想在主机和rev_主机之间存储反向字符串。例如,如果主机值为www.cmu.edu,我想将ude.umc.www保存到rev_主机。然后我使用一个语句

INSERT INTO document (rev_host) SELECT REVERSE(host) from document;
此语句引发1062错误:

ERROR 1062 (23000): Duplicate entry '' for key 2

这句话有什么问题?如果我不能以这种方式插入。执行此插入的正确方法是什么

查询会在表中插入大量新行,从而引入重复键。如果只想更新一列并保留以前的条目,请改用“更新”:


出于好奇,是否有什么特别禁止您使用基于原始“www.cmu.edu”的反向字符串,而不是使用不同的表?似乎如果转换总是一致的反转,那么您可以在需要时通过反转来节省额外的存储和插入。这将遵循“不存储您可以计算的内容”的做法。实际上,我就快到了,我使用了下面的语句:updatedocumentset rev_host=selectreverseehost FROM document;但是有个语法错误。你的答案真的有用!
UPDATE document SET rev_host=REVERSE(host);