您好我的derby嵌入式表格中存在外键约束。我有三张桌子,即房间,套餐和预订。
房间桌--- RoomId | ROOMNAME |租|描述
套餐表--- pkgId |名称|率|细节
预订表--- Id | GuestID | pkgId | RoomId | ChkIn | ChkOut |日期|
因此,Reservation表中的三个外键是GuestID,pkgId和roomId。
我想要的只是接受一些不在各自表中的值的外键。例如,如果访客不带包,我想让预订表中的pkgId为0。但是有些原因我得到错误"表格更新'预订'密钥(0)"导致违反外键约束..那是因为0表不是Packages表中的值吗?奇怪的是,这不是我早期申请的问题。德比有没有用新的jar文件改变一些东西?或者我该如何解决这个问题?我希望在保留外键约束的同时,在某些时间点,RoomId和pkgId都在预订表中接受0。谁能帮我 ?提前谢谢!
答案 0 :(得分:2)
,0是一个有效的值,就像任何其他值一样。因此,如果将0设置为FK列,它将在相关表中查找0的行。
如果要表明另一个表中没有相关行,则应使用null
作为ID