H2 数据库主键违规
H2 Database Primary Key Violation
我正在尝试使用由 2 个属性组成的主键在 table 上进行插入。但是,当我尝试插入并且主键中的属性之一与已插入的属性相同时,我收到以下错误:
Unique index or primary key violation: "CONSTRAINT_INDEX_CCC ON PUBLIC.ABWESENHEIT(DATUM) VALUES
这是我的 table:
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');
即使 "datum" 属性默认为 CURRENT_TIMESTAMP,我也需要能够插入自定义时间戳(即追溯条目)
.
考虑到 "s_id" 在两个插入中不同,它们应该可以工作。然而他们没有。关于可能导致问题的原因有什么想法吗?
提前致谢!
问题是由另一个 table 引起的,它引用了我的 table,假设 table Abwesenheit 中的日期是唯一的。
我正在尝试使用由 2 个属性组成的主键在 table 上进行插入。但是,当我尝试插入并且主键中的属性之一与已插入的属性相同时,我收到以下错误:
Unique index or primary key violation: "CONSTRAINT_INDEX_CCC ON PUBLIC.ABWESENHEIT(DATUM) VALUES
这是我的 table:
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');
即使 "datum" 属性默认为 CURRENT_TIMESTAMP,我也需要能够插入自定义时间戳(即追溯条目) .
考虑到 "s_id" 在两个插入中不同,它们应该可以工作。然而他们没有。关于可能导致问题的原因有什么想法吗?
提前致谢!
问题是由另一个 table 引起的,它引用了我的 table,假设 table Abwesenheit 中的日期是唯一的。