【发布时间】:2020-08-30 05:12:13
【问题描述】:
我以前从未在 SQL 中使用过 IF。我需要更新机构是特定数字的行(如果存在),如果不存在则插入。为了避免先使用选择然后插入或更新,我想尝试使用 IF 语句。我从我在文档中读到的内容认为它应该是这样的:
IF (NOT EXISTS(SELECT evaluations FROM tEvaluations WHERE institution = 0))
BEGIN
INSERT INTO tEvaluations (institution,evaluations) VALUES (0,0)
END
ELSE
BEGIN
UPDATE tEvaluations SET evaluations = 10 WHERE institution = 0
END
但是我得到了这个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BEGIN
INSERT INTO tEvaluations (institution,evaluations) VALUES (0,0)
END' at line 2
我正在尝试在 phpmyadmin 中运行此查询以测试查询应该如何。
【问题讨论】:
-
您使用的是哪个 dbms?
-
@jarlh
phpmyadmin实现 MySQL - 但它可能是旧版 MySQL 5 或现代 MySQL 8 - 它们之间的差异很大。 -
@jarlh 我猜 MySQL 正在查看错误消息 查看与您的 MariaDB 服务器对应的手册
-
我正在使用 MariaDB