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