douyu0725 2013-12-17 07:28
浏览 53
已采纳

mysql存储过程中的错误

I am trying to create a stored procedure, checking if a table exists.

If it does, I want to drop it and create a new one. Otherwise, just create it.

Here's the code.

  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 ;

It throws this error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; END IF; END' at line 18

  • 写回答

1条回答 默认 最新

  • douzhi6365 2013-12-17 07:32
    关注

    The error is in your else block. You are missing closing parenthesis for the create table... statement.

    Update your else block with:

    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;
    

    Update:

    To drop procedure if it already exists you'd do the following:

    DROP PROCEDURE IF EXISTS `spCheckGraph`;
    DELIMITER \\
    CREATE PROCEDURE spCheckGraph (OUT var1 INT)  
      BEGIN
        ...
      END;
    \\
    DELIMITER ;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向