簡體   English   中英

mysql存儲過程中的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM