2017-10-05 86 views
-3

我不知道如此mutch的mysql,但我有错误,我不知道为什么。下面是代码:mysql错误创建程序

USE MServers; 
DROP PROCEDURE IF EXISTS `Init` 
DELIMITER // 
CREATE PROCEDURE `Init`() 
BEGIN 
    DROP TABLE IF EXISTS `Users`; 
    DROP TABLE IF EXISTS `Ranks`; 
    DROP TABLE IF EXISTS `PBattles`; 
    CREATE TABLE `Users` (
     `ID` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
     PRIMARY KEY (`ID`), 
     UNIQUE KEY `ID` (`ID`), 
     INDEX(`ID`), 
     `username` CHARACTER VARYING(30) NOT NULL, 
     `uuid` CHARACTER VARYING(36) NOT NULL, 
     `rank` INT(1) NOT NULL DEFAULT '0' 
    ); 
    CREATE TABLE `Ranks` (
     `ID` INT(1) NOT NULL, 
     UNIQUE KEY `ID` (`ID`), 
     `rank` varchar(10) NOT NULL, 
     UNIQUE KEY `rank` (`rank`) 
    ); 
    INSERT INTO `Ranks` (`id`, `rank`) 
      VALUES (0, 'default'), (1, 'Noble'), (2, 'Guerrero'), 
        (3, 'King'), (4, 'Heroe'), (5, 'Mitico'), (6, 'Legendario'), 
        (7, 'SemiDios'), (8, 'Dios'), (9, 'DCMaster'), 
        (10, 'DCSupreme'); 

    CREATE TABLE `PBattles` (
     `ID` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
     PRIMARY KEY (`ID`), 
     UNIQUE KEY `ID` (`ID`), 
     INDEX(`ID`), 
     `username` CHARACTER VARYING(30) NOT NULL, 
     `uuid` CHARACTER VARYING(36) NOT NULL); 
END// 
DELIMITER; 
+1

是什么错误说? – tuomastik

+0

在'DROP PROCEDURE IF EXTERNTS \'Init''之后''''''可能有助于 – RiggsFolly

回答

-1

好像错过了两个//地方,

DELIMITER // 
USE MServers // 
DROP PROCEDURE IF EXISTS `Init` // 

CREATE PROCEDURE `Init`() 
BEGIN 
    DROP TABLE IF EXISTS `Users`; 
    DROP TABLE IF EXISTS `Ranks`; 
    DROP TABLE IF EXISTS `PBattles`; 
    CREATE TABLE `Users` (`ID` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`), INDEX(`ID`), `username` CHARACTER VARYING(30) NOT NULL, `uuid` CHARACTER VARYING(36) NOT NULL, `rank` INT(1) NOT NULL DEFAULT '0'); 
    CREATE TABLE `Ranks` (`ID` INT(1) NOT NULL, UNIQUE KEY `ID` (`ID`), `rank` VARCHAR(10) NOT NULL, UNIQUE KEY `rank` (`rank`)); 
    INSERT INTO `Ranks` (`id`, `rank`) VALUES (0, 'default'), (1, 'Noble'), (2, 'Guerrero'), (3, 'King'), (4, 'Heroe'), (5, 'Mitico'), (6, 'Legendario'), (7, 'SemiDios'), (8, 'Dios'), (9, 'DCMaster'), (10, 'DCSupreme'); 
    CREATE TABLE `PBattles` (`ID` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`), INDEX(`ID`), `username` CHARACTER VARYING(30) NOT NULL, `uuid` CHARACTER VARYING(36) NOT NULL); 
END // 
DELIMITER ; 

在这里看到过程的语法 - http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx

可能,这将帮助你

+0

的工作,很多麻烦!!! – esquerbatua

+0

欢迎@esquerbatua :) – KMS

+0

@KMS谢谢! – esquerbatua