所有單行我有這個表的多個列。主鍵是(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如何執行此操作?