在 Mysql 中创建 IF ELSE 语句的正确方法

Right way to create IF ELSE statement in Mysql

如果值不存在,我正在尝试使用 IF EXISTS THEN 插入 table。每次我尝试执行此查询时

DELIMITER //
CREATE PROCEDURE addnTag
BEGIN
IF (EXISTS (SELECT * FROM Tag WHERE Tag.Tag = 'tt'))
THEN SELECT -1;
ELSE
INSERT INTO Tag(Tag) VALUES('tt')
SELECT last_insert_id();
END IF;
END//
DELIMITER ;

我得到了

error (1064) 'BEGIN IF (EXISTS (SELECT * FROM Tag WHERE Tag.Tag = 'tt')) THEN SELECT -1; ELSE' at line 2 '

我找不到查询中的错误所在。

请帮助我。谢谢。

你好_

我没有收到以下语法错误:

DELIMITER //
DROP PROCEDURE IF EXISTS addnTag //
CREATE PROCEDURE addnTag()
BEGIN
IF (EXISTS (SELECT * FROM Tag WHERE Tag.Tag = 'tt'))
THEN SELECT -1;
ELSE
INSERT INTO Tag(Tag) VALUES('tt');
SELECT last_insert_id();
END IF;
END //
DELIMITER ;

您缺少 () 函数声明和 INSERT 语句末尾的分号。

我认为您只是缺少过程名称后的括号和 INSERT 语句后的分号。

这应该有效:

DELIMITER //
CREATE PROCEDURE addnTag()
BEGIN
IF (EXISTS (SELECT * FROM Tag WHERE Tag.Tag = 'tt'))
THEN 
  SELECT -1;
ELSE
  INSERT INTO Tag(Tag) VALUES('tt');
  SELECT last_insert_id();
END IF;
END//
DELIMITER ;