所有单行我有这个表的多个列。主键是(type,ref,code)
与行类型t1
,t2
和两个有效的状态(V)
和无效(I)
。复制数据库表
每一个无效的行状态t1
应该有一个有效的行中的状态t2
, 但我的表已经与无效状态的一些行没有有效的行中的状态t2
。
例子:
type | ref | code | state .....
----------------------------------------
t1 | 1 | c1 | V
t1 | 2 | c1 | V
t1 | 3 | c1 | I
t2 | 3 | c1 | V
t1 | 4 | c1 | V
t1 | 5 | c1 | I
,所以我需要复制缺少的行
我使用
INSERT INTO table (type,ref,code,state)
SELECT 't2',ref,code,'V' FROM table
WHERE EXISTS (SELECT ref,code,count(*) from table GROUP BY ref,code HAVING count(*)=1)
AND state='I'
,但我发现
Violation of PRIMARY KEY
我试着与
WHERE NOT EXISTS (SELECT ref,code,count(*) from table GROUP BY ref,code HAVING count(*)>1)
AND state='I'
并没有什么hapend。任何DEA如何执行此操作?