2013-01-13 231 views
1

我正在运行修剪查询来删除slug列中带有尾随“ - ”的任何行。MySQL重复输入错误#1062

我有重复的行,但现在需要。

我该如何解决错误,以便它运行修剪查询?

UPDATE terms 
SET slug = TRIM(TRAILING '-' FROM slug); 

错误:#1062 - Duplicate entry 'system' for key 'slug'

+0

什么是错误?你能不能把它展示出来...... – bonCodigo

+0

#1062 - 键“slug”的重复输入'系统' – Dave

+0

你有2行,其中slug列包含系统和系统 - 例如一个用“system”,另一个用“system-” – Wasif

回答

1

如果你有一个UNIQUE约束的slug列设置,您必须删除:

ALTER TABLE terms DROP INDEX my_unique_constraint 

请注意,上面只工作了MySQL的 - 陈述变化按照数据库。

+0

正是我不得不做的..谢谢! – Dave

1

它看起来像柱塞被定义为唯一或主键。如果要保留重复记录,则可能需要从此列中删除UNIQUE或PRIMARY KEY或/并引入不同的PRIMARY KEY/UNIQUE列。

+0

如果声明了pirmary/unique键,那么在slug列中如何存在重复项? :$ – bonCodigo

+1

@bonCodigo:现在没有重复*,但错误意味着在执行“TRIM”之后,会出现。 – DCoder

+0

@DCoder是正确的,在TRIM之前没有重复的行。例如一行包含“a”,第二行包含“a-”。但是在TRIM之后,由于列被定义为UNIQUE/PRIMARY KEY,两者都将不允许使用。 – Wasif