我为表创建了一个唯一索引,并出现以下错误:
SQL error: ERROR: could not create unique index "unique_product" DETAIL: Key (mastercode)=() is duplicated
Run Code Online (Sandbox Code Playgroud)
所以我运行一个查询来检查重复的记录,并确实发现了一些重复:
select * from product p where (select count(*) from product pp where pp.mastercode = p.mastercode) > 1
Run Code Online (Sandbox Code Playgroud)
但即使删除它们后我无法创建索引,它也显示相同的错误,并且检查重复项的查询没有显示任何内容.
看起来它在删除重复项之后没有更新索引,或类似的东西.我怎么解决这个问题?
更新
我忘记提及的东西,但可能很重要,我已经在该字段上有一个索引mastercode,这是一个默认索引(不是唯一的).不知道这是否有事可做.
检查此查询的结果:
SELECT mastercode, count(*)
FROM product
GROUP BY mastercode
HAVING count(*) > 1; -- not unique
Run Code Online (Sandbox Code Playgroud)
我相信您有一个空主代码的实例,并且正在尝试插入另一个空主代码。
尝试select * from product where mastercode is null;
| 归档时间: |
|
| 查看次数: |
5183 次 |
| 最近记录: |