代码之家  ›  专栏  ›  技术社区  ›  Peter

无法在sqlite3触发器中使用set

  •  1
  • Peter  · 技术社区  · 7 年前

    我试图启动一个数据库(使用sqlite3进行测试),但似乎无法执行 SET 在扳机里。我得到以下错误: OperationalError: near "SET": syntax error 是的。

    从扳机里面插进去就行了,所以我很好奇我到底做错了什么?

    import sqlite3
    conn = sqlite3.connect(':memory:')
    
    c = conn.cursor()
    
    c.execute("""CREATE TABLE Programs (
        id INTEGER PRIMARY KEY,
        name VARCHAR(64) NOT NULL,
        time_added INTEGER
    );""")
    
    c.execute("""CREATE TRIGGER program_time_added AFTER INSERT ON Programs
        FOR EACH ROW
        BEGIN
            SET new.time_added = UNIX_TIMESTAMP(NOW());
        END;""")
    
    c.execute('INSERT INTO Programs (name) VALUES (?)', ['name'])
    
    0 回复  |  直到 7 年前