备注 | 修改日期 | 修改人 |
内容更新 | 2023-12-14 09:00:08[当前版本] | 周杨 |
内容更新 | 2023-12-14 08:54:07 | 周杨 |
创建版本 | 2023-12-13 15:02:31 | 周杨 |
解决:通过触发器实现存储过程功能
(1)创建1个触发触发器的表
create table sp_table ( sp_value INT );
(2)创建触发器
CREATE TRIGGER tr_sp AFTER update ON sp_table BEGIN -- 执行相关语句,如: -- INSERT INTO TableName (name, age) VALUES (name, age); -- DELETE FROM TableName WHERE AGE > 100 END;
(3)执行触发器
update sp_table set sp_value = 3
注意:触发器前后表分别对应old和new
通过定义两个或三个使用WHEN条件的触发器来实现相同的效果,请参阅http://sqlite.org/lang_createtrigger.html
CREATE TRIGGER tr_sp_1 AFTER update ON sp_table when sp_value = 1 BEGIN -- 执行相关语句,如: -- INSERT INTO TableName (name, age) VALUES (name, age); -- DELETE FROM TableName WHERE AGE > 100 END;
CREATE TRIGGER tr_sp_1 AFTER update ON sp_table when sp_value = 2 BEGIN -- 执行相关语句,如: -- INSERT INTO TableName (name, age) VALUES (name, age); -- DELETE FROM TableName WHERE AGE <= 100 END;注:查看触发器信息
SELECT * FROM sqlite_master WHERE type = 'trigger';
比如 SQL Server 中的 DECLARE @Name VARCHAR(10)。