我有4个不同的表,我希望用户使用klantid删除4个不同表中的一行。 这是我的桌子
Customer
具有customerid
,name
。Customercard
具有Cardid
,customerid(FK)
booking
具有bookingid
,customerid
4。bookingroom
具有bookingid
我可以从3张桌子中删除,并在其中填入“ customerid”,但我还必须删除预订房间中的行/行。如何删除我的数据库?
我已经搜索了stackoverflow,但是所有答案都是针对单个FK的,这会影响更多表。我有2个不同的FK'''(Customerid and Bookingid)'''
答案 0 :(得分:0)
您必须选择客户的bookingIds。我不确切知道您的问题,但似乎您只想删除这4个分配了客户的表中的所有内容。
因此,您的客户编号= XXX:
DELETE FROM bookingroom WHERE bockingid IN (SELECT b.id FROM booking b WHERE customerid = XXX);
此后,您可以使用WHERE customerId = XXX
编辑:
如果要删除客户,则必须至少删除引用该客户的所有行。即Customercard
和booking
。
如果您还想删除所有预订的预订房间,则引用该客户,您可以使用上面的语句。
然后,您可以删除客户的预订:
DELETE FROM booking WHERE customerid = XXX;
删除客户的客户卡:
DELETE FROM Customercard where customerid = XXX;
然后,您可以删除客户(如果未由其他表分配该客户):
DELETE FROM Customer WHERE customerid = XXX;