【问题标题】:Cant remove row with trigger in SQL无法在 SQL 中使用触发器删除行
【发布时间】:2020-07-20 02:51:39
【问题描述】:

每当学生的受欢迎程度更新并变为

UPDATE student
SET popularity = 52
WHERE id = 2;

结果:没有这样的列:流行度

错在哪里?

【问题讨论】:

  • 触发器是高度特定于供应商的 - 所以请添加一个标签来指定您使用的是mysqlpostgresqlsql-serveroracle 还是db2 - 或完全不同的东西。
  • 我使用db浏览器Sql Lite

标签: sql sqlite triggers


【解决方案1】:

您想要引用NEW。所以我认为逻辑是:

CREATE TRIGGER t1
AFTER UPDATE ON student
FOR EACH ROW
when new.popularity < 50
begin 
    delete from ismember
        where new.id = ismember.sid and team = 'cool_guys';
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2021-02-01
    • 2016-02-13
    相关资源
    最近更新 更多