我正在对数据库中的对等2对等关系建模(特别是H2,但是对于这个问题,任何RDBMS都应该这样做。)
说,我有一个设备表
CREATE TABLE EQUIPMENTS (
ID LONG PRIMARY KEY,
VENDOR VARCHAR(50) NOT NULL,
MODEL VARCHAR(50) NOT NULL,
PORT VARCHAR(50),
peer_equipment_id LONG REFERENCES EQUIPMENTS(ID)
);
现在,假设我必须像下面这样在表中插入2条记录:
insert into EQUIPMENTS
(ID, VENDOR, MODEL, PORT, peer_equipment_id)
VALUES (1, 'vendor1', 'model1', 'port3', 2);
由于ID等于2的设备行尚未在数据库中,因此数据库给出了违反引用完整性约束的错误。
一个人应该如何建立这种关系并仍然保持参照完整性?
任何见识都会有所帮助。非常感谢。
[insert
,insert
,update
:
insert into EQUIPMENTS (ID, VENDOR, MODEL, PORT, peer_equipment_id)
VALUES (1, 'vendor1', 'model1', 'port3', NULL);
insert into EQUIPMENTS (ID, VENDOR, MODEL, PORT, peer_equipment_id)
VALUES (2, 'vendor2', 'model2', 'port3', NULL);
update EQUIPMENTS
set peer_equipment_id = 2
where id = 1;