在 SQLite 中,触发器(Triggers)是一种特殊的存储过程,它在表上执行定义好的操作,如在插入、更新或删除操作发生时自动触发。触发器可以用于执行复杂的操作,例如数据验证、审计跟踪、数据复制等。以下是创建和使用触发器的基本语法:

创建触发器

1. 在插入操作后触发的触发器:
CREATE TRIGGER trigger_name
AFTER INSERT
ON table_name
BEGIN
    -- 触发器执行的操作
    -- 可以包含 INSERT、UPDATE、DELETE 等操作
END;

2. 在更新操作前触发的触发器:
CREATE TRIGGER trigger_name
BEFORE UPDATE
ON table_name
BEGIN
    -- 触发器执行的操作
    -- 可以包含 INSERT、UPDATE、DELETE 等操作
END;

3. 在删除操作后触发的触发器:
CREATE TRIGGER trigger_name
AFTER DELETE
ON table_name
BEGIN
    -- 触发器执行的操作
    -- 可以包含 INSERT、UPDATE、DELETE 等操作
END;

触发器中的操作

在触发器中,可以执行各种 SQL 操作,例如插入、更新、删除等。以下是一个在插入操作后自动更新相关字段的触发器的例子:
CREATE TRIGGER update_timestamp
AFTER INSERT
ON example_table
BEGIN
    UPDATE example_table
    SET last_inserted = CURRENT_TIMESTAMP
    WHERE rowid = NEW.rowid;
END;

删除触发器

要删除触发器,可以使用以下语法:
DROP TRIGGER IF EXISTS trigger_name;

这里的 trigger_name 是要删除的触发器的名称。

请注意,SQLite 触发器的创建和使用有一些限制,例如一个表上的触发器数量有限制,而且触发器不能触发同一表上的其他触发器。因此,在设计数据库时,需要谨慎使用触发器,确保它们满足业务需求且不引起不必要的复杂性。


转载请注明出处:http://www.zyzy.cn/article/detail/14189/SQLite