gpt4 book ai didi

sqlite - 如何在sqlite中使用if语句

转载 作者:行者123 更新时间:2023-12-03 19:46:33 28 4
gpt4 key购买 nike

我在SQL Server中有这样的查询:

create trigger MyTrigger after updated on Customer
begin
declare @oldname nvarchar(50);

set @oldname = select d.CustomerName from deleted d
if(@oldname = 'John')
begin
insert into tbl1(Name) values('John') -- An Insert For Example
end

end


old.CustomerName将为我提供SQLite中的 @oldname值;

我将为SQLite做类似上面的事情;但我对if语句有疑问

我怎样才能在SQLite中使用select case这样的东西?还是我有其他选择?

最佳答案

SQLite触发器语法与SQL Server的语法非常不同。最简单的方法是使用WHEN子句来限定触发器。 (由于这是一个删除触发器,因此我们使用OLD“访问已删除的行”。)

CREATE TRIGGER myTrigger AFTER DELETE ON Customer
WHEN OLD.CustomerName = 'John'
BEGIN
INSERT INTO tbl1(Name) VALUES ( OLD.CustomerName );
END


但是,这是非常特殊的情况!一种更通用的方法是通过从 INSERT将事物拉到 SELECT来更多地利用关系代数的魔力,当条件失败时,该事物会生成要插入的空行集合:

CREATE TRIGGER myTrigger AFTER DELETE ON Customer
BEGIN
INSERT INTO tbl1(Name)
SELECT OLD.CustomerName AS Name
WHERE OLD.CustomerName = 'John';
END

关于sqlite - 如何在sqlite中使用if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860489/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com