【发布时间】:2012-02-18 22:16:19
【问题描述】:
基本上,我有一个名为 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
这句话有什么问题?如果我不能以这种方式插入。执行此插入的正确方法是什么?
【问题讨论】:
-
出于好奇,是否有什么特别禁止您使用基于原始 'www.cmu.edu' 的反转字符串而不是使用不同的表?似乎如果转换总是那么一致(REVERSE),您可以通过在需要时执行 REVERSE(选择等)来节省额外的存储和插入。这将遵循“不要存储您可以计算的内容”的做法
标签: mysql select insert reverse