【问题标题】:How to define a database trigger in sqlite using sqlalchemy/python?如何使用 sqlalchemy/python 在 sqlite 中定义数据库触发器?
【发布时间】:2021-03-02 10:57:06
【问题描述】:

我正在使用 sqlalchemy 来定义和构建一个 sqlite 数据库;它有 2 个相关的表,称为 Authors 和 Books。两者都有一列将记录标记为收藏;我正在尝试构建一个触发器,以便如果 authors.favorite 更新,它将进入 Books 表,找到具有相同作者的每一本书(它们由作者 ID 连接),然后更新 books.favorite 为该记录具有相同的值。所以如果我说一个作者是最喜欢的,那么他们所有的书也都被标记为最喜欢的。如果我不喜欢它们,那些书都是不喜欢的。

我已经看到了一些关于侦听器、自动创建时间戳等的内容,但我找不到任何有关构建触发器的文档,以便在更新一个表时,它会退出并更新另一个表。谁能指出我一些资源? 谢谢!

【问题讨论】:

    标签: python sqlite sqlalchemy


    【解决方案1】:

    你只需要定义触发器:

    CREATE TRIGGER IF NOT EXISTS update_favorites
    BEFORE UPDATE 
    ON AUTHOR
    
    BEGIN
    
    UPDATE BOOKS
    SET favorite = new.favorite
    WHERE author_id = new.author_id;
    
    END;
    

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 2012-04-13
      • 2012-12-03
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多