首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除上次匹配SQL上的记录

删除上次匹配SQL上的记录
EN

Stack Overflow用户
提问于 2018-04-05 06:47:39
回答 1查看 90关注 0票数 1

我有两个表链接在一起,如下所示:

代码语言:javascript
复制
Owner table | owner_id = Primary Key
Car table | car_id = Primary Key | owner_id = Foreign Key

基本上,每次添加新的汽车记录时,都会将其分配给车主。一个车主可以拥有多辆车,但每辆车只能属于一个车主。

有没有可能设置一个约束或某种东西,从最后一个“匹配”记录上的所有者表中删除所有者。

例如,owner_1拥有5辆汽车。在他们拥有的最后一辆车被删除后,它还会从数据库中删除车主记录。

EN

回答 1

Stack Overflow用户

发布于 2018-04-05 07:19:52

我认为after delete触发器可以完成这项工作。每次删除汽车记录时,都应该查询相同的汽车表,以查看是否存在与要删除的汽车具有相同车主的另一辆汽车。如下所示:

编辑:修复选择查询:D

代码语言:javascript
复制
DELIMITER $$
CREATE TRIGGER delete_owners_delete AFTER DELETE ON Car FOR EACH ROW
BEGIN
   DECLARE iCounter integer;
   SELECT COUNT(owner_id) INTO @iCounter FROM car c WHERE c.owner_id = old.owner_id;
   IF (@iCounter < 1) THEN
      DELETE FROM Owner WHERE owner_id = old.owner_id;
   END IF;
END; 
$$    

希望能有所帮助。干杯!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49661580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档