德比外键约束问题

时间:2017-02-14 17:33:10

标签: sql derby

您好我的derby嵌入式表格中存在外键约束。我有三张桌子,即房间,套餐和预订。

房间桌--- RoomId | ROOMNAME |租|描述

套餐表--- pkgId |名称|率|细节

预订表--- Id | GuestID | pkgId | RoomId | ChkIn | ChkOut |日期|

因此,Reservation表中的三个外键是GuestID,pkgId和roomId。

我想要的只是接受一些不在各自表中的值的外键。例如,如果访客不带包,我想让预订表中的pkgId为0。但是有些原因我得到错误"表格更新'预订'密钥(0)"导致违反外键约束..那是因为0表不是Packages表中的值吗?奇怪的是,这不是我早期申请的问题。德比有没有用新的jar文件改变一些东西?或者我该如何解决这个问题?我希望在保留外键约束的同时,在某些时间点,RoomId和pkgId都在预订表中接受0。谁能帮我 ?提前谢谢!

1 个答案:

答案 0 :(得分:2)

SQL中的

,0是一个有效的值,就像任何其他值一样。因此,如果将0设置为FK列,它将在相关表中查找0的行。

如果要表明另一个表中没有相关行,则应使用null作为ID

相关问题