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

在Mysql中创建IF-ELSE语句的正确方法,mysql,mysql-error-1064,Mysql,Mysql Error 1064,如果值不存在,我尝试使用if EXISTS THEN将其插入到表中。每次我尝试执行此查询时 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 ;

如果值不存在,我尝试使用if EXISTS THEN将其插入到表中。每次我尝试执行此查询时

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 ;
我拿到了

错误1064“如果存在,则开始从标记中选择*,其中Tag.Tag= “tt”然后选择-1;“在第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 ;

再看看创建过程addnTag。