2015-12-21 67 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表中的日期是唯一的。