2012-02-15 41 views
0

我需要在表格中插入一些字段。表:獨特的不工作?

CREATE TABLE RADAR(
    ctfoto VARCHAR2(5), 
    pkradar NUMBER(3,0), 
    sradar VARCHAR2(3), 
    limitvelctera NUMBER(3,0), 
    limitvelradar NUMBER(3,0), 
    CONSTRAINT radar_pk PRIMARY KEY(ctfoto, pkradar, sradar) 
); 

插入操作:

INSERT INTO RADAR(ctfoto, pkradar, sradar, limitvelctera, limitvelradar) 
SELECT distinct carretera_foto, pto_km_radar, sentido_radar, limit_vel_ctera, limit_vel_radar FROM gotcha 

錯誤:

ORA-00001: unique constraint (USER4704.RADAR_PK) violated 

請幫助。

回答

3

DISTINCT適用於整組您選擇的列。

在所有的可能性,你有GOTCHA具有相同carretera_fotopto_km_radarsentido_radar值,但不同的價值觀對一個或兩個另外兩列(limit_vel_cteralimit_vel_radar)的行。您的SELECT中的DISTINCT無法消除任一行,因爲至少有一個值不同,但RADAR表中的主鍵約束會拒絕前三列相同的行。

+0

固定!!!雷達表的另外兩個值是唯一的(每個雷達都有它自己的最高速度,所以我使用整個事情作爲主鍵。 – Nausikaa 2012-02-15 18:16:00

3

你可能在gotcha領域裏的carretera_foto, pto_km_radar, sentido_radar值相同的多個記錄。

DISTINCT意味着整個記錄將不再重複。

+0

是的。不清楚用於放棄重複記錄嗎? – Nausikaa 2012-02-15 18:10:20

+0

而我需要放棄重複的價值觀並採取一個。我怎麼做? – Nausikaa 2012-02-15 18:11:54

+0

這是另一個問題:)說真的,你應該問一個新的問題。當你這樣做的時候,確保你陳述了你應該考慮哪些limit_vel_ctera和limit_vel_radar的值,當你有多個記錄時有相同的carretera_foto,pto_km_radar,sentido_radar – 2012-02-15 18:14:56