2023-12-13 15:02:31 版本 : SQLite须知
作者: 周杨 于 2023年12月13日 发布在分类 / 计算机应用 / 数据库 / SQLite 下,并于 2023年12月13日 编辑
 历史版本

备注 修改日期 修改人
内容更新 2023-12-14 09:00:08[当前版本] 周杨
内容更新 2023-12-14 08:54:07 周杨
创建版本 2023-12-13 15:02:31 周杨

1.不支持存储过程

解决:通过触发器实现存储过程功能

(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


2.不支持IF子句或CASE WHEN结构

通过定义两个或三个使用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';


3.不支持声明变量

比如 SQL Server 中的 DECLARE @Name VARCHAR(10)。


4.不支持通过SQL语句去删除列


5.字符类型在查询时默认是区分大小写的,可以更改设置

历史版本-目录  [回到顶端]
    知识分享平台 -V 5.1.4 -大信谛威