Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql存储过程中出现错误_Php_Mysql_Sql_Sql Server - Fatal编程技术网

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之前添加它。