基本上,我有一个名为document的表,其中包含一个名为“host”的列。我创建了另一个名为“rev_host”的列,我想要的是将反向字符串从“host”存储到“rev_host”。例如,如果“host”值为“www.cmu.edu”,我想将“ude.umc.www”保存为“rev_host”。然后我使用声明
INSERT INTO document (rev_host) SELECT REVERSE(host) from document;
此语句抛出1062错误:
ERROR 1062 (23000): Duplicate entry '' for key 2
这个陈述有什么问题?如果我不能以这种方式插入。执行此插入的正确方法是什么?
答案 0 :(得分:2)
您的查询在表中插入了一大堆新行,从而引入了重复的键。如果您只想更新一列,请保留以前的条目,而不是使用UPDATE
:
UPDATE document SET rev_host=REVERSE(host);