2015-12-21 371 views
2

我想在主鍵上由2個屬性組成的表上插入。然而,當我試圖讓插件和主鍵中的一個屬性是相同的一個已經插入我收到以下錯誤:H2數據庫主鍵違規

Unique index or primary key violation: "CONSTRAINT_INDEX_CCC ON PUBLIC.ABWESENHEIT(DATUM) VALUES 

這裏是我的表:

Create TABLE Abwesenheit (

    s_id INTEGER NOT NULL REFERENCES Schueler(id) ON DELETE CASCADE, 
    entschuldigt BOOLEAN DEFAULT FALSE, 
    datum TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
    kommentar VARCHAR(40), 
    kalendereintrag_id VARCHAR(40) REFERENCES Schoolsubject(name) ON DELETE CASCADE, 
    deleted BOOLEAN DEFAULT FALSE, 
    PRIMARY KEY (s_id,datum) 

); 

這裏2個刀片,其重現該問題:

insert into Abwesenheit (s_id, entschuldigt, kommentar,datum,kalendereintrag_id) values (1,'false','','2015-12-21 11:59:00.0','Geschichte'); 
insert into Abwesenheit (s_id, entschuldigt, kommentar,datum,kalendereintrag_id) values (2,'false','','2015-12-21 11:59:00.0','Geschichte'); 

即使「原點」屬性默認爲CURRENT_TIMESTAMP,我需要能夠插入定製時間戳(即追溯項目) 。

鑑於「s_id」在兩個插頁中不同,它們應該可以工作。但他們沒有。關於什麼可能會導致問題的任何想法?

在此先感謝!

+0

CONSTRAINT_INDEX_CCC表明它可能不是導致此錯誤的主鍵。你的桌子上有第二個唯一索引嗎? –

+0

不,我沒有一個 – Syn

+0

也許是一個約束呢?您可以測試數據是否限制您通過將日期/時間之一更改爲12:00:00來解除數值。我相信你已經檢查了這個,但是也值得仔細檢查你沒有任何現存的記錄衝突。 –

回答

1

這個問題是由另一個引用我的表的表引起的,假設Abwesenheit表中的日期是唯一的。