DELIMITER $$CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    PROCEDURE `dedecmsv57gbksp1`.`insertww`(
qtypeid INT,
qchannel INT,
qtitle VARCHAR(255),
qfahuo VARCHAR(250),
qlocation VARCHAR(250),
qkeyword VARCHAR(250),
qtableinfo MEDIUMTEXT,
qinfo MEDIUMTEXT,
qcontact MEDIUMTEXT
    )
    /*LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'*/
    
    BEGIN
    DECLARE idid INT;
INSERT INTO dede_arctiny (typeid,channel,MID) VALUES ( qtypeid, qchannel, '1');
IF ( ROW_COUNT() > 0 )
THEN
SELECT LAST_INSERT_ID() INTO idid; 
ELSE
ROLLBACK;
END IF;

INSERT INTO dede_zgy (aid,typeid,channel,MID,title,litpic,fahuo,location,keyword,tableinfo,info,contact) VALUES(idid,qtypeid,qchannel,'1',qtitle,'',qfahuo,qlocation,qkeyword,qtableinfo,qinfo,qcontact);
IF ( ROW_COUNT() > 0 )
THEN  
COMMIT;  
        ELSE  
ROLLBACK;  
        END IF; 
    END$$DELIMITER ;

解决方案 »

  1.   

    错误码: 1307 Failed to CREATE PROCEDURE mysql创建存储过程失败,怎么解决
      

  2.   

    是mysql本身的问题,解决办法:
    先将phpmyadmin中的mysql数据库中的表proc删除
    然后执行以下代码重建该表,经测试成功.
    ------------------------------------------------------------------------
    CREATE TABLE `proc` (
    `db` char(64) character set utf8 collate utf8_bin NOT NULL default '',
    `name` char(64) NOT NULL default '',
    `type` enum('FUNCTION','PROCEDURE') NOT NULL,
    `specific_name` char(64) NOT NULL default '',
    `language` enum('SQL') NOT NULL default 'SQL',
    `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL',
    `is_deterministic` enum('YES','NO') NOT NULL default 'NO',
    `security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER',
    `param_list` blob NOT NULL,
    `returns` char(64) NOT NULL default '',
    `body` longblob NOT NULL,
    `definer` char(77) character set utf8 collate utf8_bin NOT NULL default '',
    `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `modified` timestamp NOT NULL default '0000-00-00 00:00:00',
    `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','GBASE80','GBASE81','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '',
    `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '',
    `character_set_client` char(32) character set utf8 collate utf8_bin default NULL,
    `collation_connection` char(32) character set utf8 collate utf8_bin default NULL,
    `db_collation` char(32) character set utf8 collate utf8_bin default NULL,
    `body_utf8` longblob,
    PRIMARY KEY (`db`,`name`,`type`)
    ) DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'===================早期的该表结构如下:-------------------CREATE TABLE `proc` (
    `db` char(64) character set utf8 collate utf8_bin NOT NULL default '',
    `name` char(64) NOT NULL default '',
    `type` enum('FUNCTION','PROCEDURE') NOT NULL,
    `specific_name` char(64) NOT NULL default '',
    `language` enum('SQL') NOT NULL default 'SQL',
    `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL',
    `is_deterministic` enum('YES','NO') NOT NULL default 'NO',
    `security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER',
    `param_list` blob NOT NULL,
    `returns` char(64) NOT NULL default '',
    `body` longblob NOT NULL,
    `definer` char(77) character set utf8 collate utf8_bin NOT NULL default '',
    `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `modified` timestamp NOT NULL default '0000-00-00 00:00:00',
    `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','GBASE323','GBASE40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '',
    `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '',
    PRIMARY KEY (`db`,`name`,`type`)
    ) DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'