gpt4 book ai didi

SQLite CASE/WHEN 语句

转载 作者:行者123 更新时间:2023-12-02 00:39:50 26 4
gpt4 key购买 nike

这是我的 CASE/WHEN 语句。但正如你所看到的,我收到了这个错误。我不知道为什么。我想做的就是检测 MAJKA 字段中的某些内容何时发生更改。因此,如果 MAJKA 列的某些其他字段为空,请不要触摸它们,而是将值更改为 MAJKA 列中不为空的那些字段的新值。

SQL Error: near "UPDATE": syntax error  <CREATE TRIGGER [test] 
AFTER UPDATE OF [MAJKA]
ON [unos_golub]
FOR EACH ROW
BEGIN

SELECT majka,
CASE WHEN majka=''

THEN
(UPDATE unos_golub SET broj_goluba=NEW.majka WHERE broj_goluba=OLD.majka)

ELSE
(UPDATE unos_golub SET broj_goluba=NEW.majka WHERE broj_goluba=OLD.majka
UPDATE unos_golub SET majka=NEW.majka WHERE majka=OLD.majka)
END

FROM unos_golub;

最佳答案

SQLite 没有通用机制来有条件地执行命令。但是,在触发器中,您可以在整个触发器上使用 WHEN 条件:

CREATE TRIGGER test_for_broj_goluba
AFTER UPDATE OF majka ON unos_golub
BEGIN
UPDATE unos_golub SET broj_goluba=NEW.majka WHERE broj_goluba=OLD.majka;
END;

CREATE TRIGGER test_for_majka
AFTER UPDATE OF majka ON unos_golub
WHEN NEW.majka <> ''
BEGIN
UPDATE unos_golub SET majka=NEW.majka WHERE majka=OLD.majka;
END;

(第一个 UPDATE 在两种情况下都是相同的,因此不需要 WHEN。)

关于SQLite CASE/WHEN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654982/

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