[英]error in mysql stored procedure
我正在嘗試創建一個存儲過程,檢查是否存在表。
如果是這樣,我想刪除它並創建一個新的。 否則,只需創建它。
這是代碼。
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服務器版本相對應的手冊,以在'附近使用正確的語法; 萬一; 在第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 ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.