我正在尝试根据某些传递参数的值在MySQL存储过程中创建表。我的代码如下:
DELIMITER //
CREATE PROCEDURE testifelse(IN CurrentGPA varchar(40), IN CurrentGPAValue varchar(40))
BEGIN
IF CurrentGPAValue IS NULL THEN CREATE TABLE tableCurrentGPA(SELECT DISTINCT u.user_id AS uid FROM users u);
ELSE CREATE TABLE tableCurrentGPA(SELECT DISTINCT udata.user_id AS uid FROM userdata udata WHERE udata.userDataTypeName = CurrentGPA AND udata.userDataText = CurrentGPAValue);
END
我收到一条错误消息:#1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以找到在第5行的''附近使用的正确语法。
我不确定在这里我做错了什么。语法对我来说看起来不错,查询似乎格式正确。
最佳答案
您缺少END IF
语句。
CREATE PROCEDURE testifelse(IN CurrentGPA varchar(40), IN CurrentGPAValue varchar(40))
BEGIN
IF CurrentGPAValue IS NULL THEN CREATE TABLE tableCurrentGPA(SELECT DISTINCT u.user_id AS uid FROM users u);
ELSE CREATE TABLE tableCurrentGPA(SELECT DISTINCT udata.user_id AS uid FROM userdata udata WHERE udata.userDataTypeName = CurrentGPA AND udata.userDataText = CurrentGPAValue);
END IF;
END
关于mysql - if/else块中创建表的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15817849/