1
我想创建一个存储过程,检查一个表是否存在。mysql存储过程中的错误
如果是这样,我想放下它并创建一个新的。否则,只需创建它。
这是代码。
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服务器版本对应的手册,以找到在';'附近使用的正确语法。万一; END'在线18
的'END IF; '已经在OP的代码中。他/她只是在'DELIMITER.' –
感谢@vinodadhikary的代码末尾添加了额外的'END'语句..另一件事,我如何删除一个过程,如果它已经存在?我想在创建这个sp之前添加它。 –
@EricSantos,请参阅更新。 – vee