Php mysql存储过程中出现错误
我试图创建一个存储过程,检查表是否存在 如果有,我想删除它并创建一个新的。否则,就创建它 这是密码Php mysql存储过程中出现错误,php,mysql,sql,sql-server,Php,Mysql,Sql,Sql Server,我试图创建一个存储过程,检查表是否存在 如果有,我想删除它并创建一个新的。否则,就创建它 这是密码 DELIMITER \\ CREATE PROCEDURE spCheckGraph (OUT var1 INT) BEGIN DECLARE var0 INT; SELECT COUNT(*) INTO var1 FROM GRAPH_SUMMARY; IF var1 =0 THEN CREATE TABLE GRAPH
DELIMITER \\
CREATE PROCEDURE spCheckGraph (OUT var1 INT)
BEGIN
DECLARE var0 INT;
SELECT COUNT(*) INTO var1 FROM GRAPH_SUMMARY;
IF var1 =0 THEN
CREATE TABLE GRAPH_SUMMARY(
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gender varchar(10),
purpose_abroad_as_per_recorded_travel varchar(255),
country_name varchar(255)
);
ELSE
Drop table GRAPH_SUMMARY;
CREATE TABLE GRAPH_SUMMARY(
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gender varchar(10),
purpose_abroad_as_per_recorded_travel varchar(255),
country_name varchar(255) ;
END IF;
END \\
DELIMITER ;
它抛出以下错误:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解使用near'的正确语法;如果结束;“结束”在第18行,错误在
else
块中。create table…
语句缺少右括号
使用以下内容更新else块:
ELSE
Drop table GRAPH_SUMMARY;
CREATE TABLE GRAPH_SUMMARY(
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gender varchar(10),
purpose_abroad_as_per_recorded_travel varchar(255),
country_name varchar(255)
);
END IF;
更新:
若要删除已存在的过程,请执行以下操作:
DROP PROCEDURE IF EXISTS `spCheckGraph`;
DELIMITER \\
CREATE PROCEDURE spCheckGraph (OUT var1 INT)
BEGIN
...
END;
\\
DELIMITER ;
错误在
else
块中。create table…
语句缺少右括号
使用以下内容更新else块:
ELSE
Drop table GRAPH_SUMMARY;
CREATE TABLE GRAPH_SUMMARY(
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gender varchar(10),
purpose_abroad_as_per_recorded_travel varchar(255),
country_name varchar(255)
);
END IF;
更新:
若要删除已存在的过程,请执行以下操作:
DROP PROCEDURE IF EXISTS `spCheckGraph`;
DELIMITER \\
CREATE PROCEDURE spCheckGraph (OUT var1 INT)
BEGIN
...
END;
\\
DELIMITER ;
结束IF代码>已存在于OP的代码中。他/她只是在代码末尾的分隔符上方有一个额外的END
语句。
谢谢@vinodadhikary。。另一件事,如果一个过程已经存在,我如何删除它?我想在创建此sp之前添加它。END IF代码>已存在于OP的代码中。他/她只是在代码末尾的分隔符上方有一个额外的END
语句。
谢谢@vinodadhikary。。另一件事,如果一个过程已经存在,我如何删除它?我想在创建此sp之前添加它。