【问题标题】:A trigger to add 7 days to a date将日期添加 7 天的触发器
【发布时间】:2021-12-29 10:47:39
【问题描述】:

我有一列 start_week 和另一列 end_week。我做了一个触发器,我在 + 7 天内设置了 start_week 和 end_week,但它不能正常工作。

这是我的代码:

CREATE TRIGGER T_fin_semana UPDATE of fin_semana on fb_clients 
BEGIN
  UPDATE fb_clients SET fin_semana = 'select date('now','+6 day'), WHERE nombre=old.nombre; 
END;

错误:

Execution finished with errors.
Result: near "select": syntax error
At line 1:
CREATE TRIGGER T_fin_semana UPDATE of fin_semana on fb_clients 
BEGIN
  UPDATE fb_clients SET fin_semana = select

【问题讨论】:

    标签: sql sqlite triggers


    【解决方案1】:

    我相信你想要:-

    CREATE TRIGGER T_fin_semana AFTER UPDATE OF fin_semana ON fb_clients 
        BEGIN
         UPDATE fb_clients SET fin_semana = date('now','+6 day') WHERE nombre=old.nombre; 
         END;
    

    那是你需要的

    1. 指定以下之一:-
    • BEFORE
    • AFTER
    • INSTEAD OF

    在触发动作之前(更新插入或删除),和

    1. 如上所示更正 UPDATE 中的语法错误。
    • 您可以使用 (SELECT date('now','+6 day')),但不需要 SELECT,因为表达式本身就可以。

    测试使用:-

    /* Test */
    INSERT INTO fb_clients (fin_semana) VALUES('not set');
    UPDATE fb_clients SET fin_semana = 'updated';
    SELECT * FROM fb_clients;
    

    这会导致:-

    【讨论】:

    • 现在没有错误,但在 sql 错误日志中显示:(1) 无法为 RasterGLSurface 初始化 OpenGL,恢复为 RasterSurface。 (, :0)
    • @KelvinJPS 这是一个不同的问题,需要另一个问题,因为它与 SQLite 无关。
    • 它工作正常,谢谢你的帮助老兄
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2011-01-20
    • 2023-03-09
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    相关资源
    最近更新 更多