我有一个包含 3 个表的简单数据库。
Person (personId[PK], Name, other stuff)
Addresses (AddressId[PK], roade, number, other stuff)
Residents ( personId[FK],AddressId[FK]) The two columns are the PK
如果他是唯一住在那里的人,我需要能够从数据库和他的地址中删除一个人。所以我需要能够找出是否有更多的人住在同一个地址。如果是,则让它保留,如果不删除地址。
我在想的是
我想使用他的名字删除表 Person 中的 Person Delete person WHERE Name='John'; 这也应该删除 Residents 中与 Johns personId 匹配的任何行。现在 John 也有一个或多个地址,在 Residents 表中与他相连。现在,当我删除 John 时,我需要删除他在地址表中连接到的所有地址。作为最后一个约束,我需要确保没有其他人连接到我将要删除的地址。如果有另一个人连接,我不应该删除地址表中的地址