在 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 ;
如果值不存在,我正在尝试使用 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 ;