本人在创建存储过程的时候出现"错误码: 1307 Failed to CREATE PROCEDURE mysql创建存储过程失败"错误,经查资料实践后整理得出是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_K
EY_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_ZE
RO_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'
注意:在删除proc表之前最好先把查询窗口弹出,不然你删除proc表中没发通过sql创建改表
分享到:
相关推荐
你可以使用MySQL命令行客户端或者可视化工具(如MySQL Workbench)来查看和创建存储过程。 要从Java程序中调用这些存储过程,你需要遵循以下步骤: 1. **导入必要的库**:在Java源文件中,导入JDBC相关的库,通常...
首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个分号(;)而不会导致命令提前结束。存储过程的定义如下: ```sql CREATE PROCEDURE ...
- **创建与调用**:通过`CREATE PROCEDURE`语句创建存储过程,通过`CALL`语句调用。 #### 三、导出存储过程的方法 为了确保数据库中的存储过程能够被正确地导出并重新导入,我们需要使用特定的命令来进行操作。根据...
创建存储过程的基本语法结构如下: ```sql CREATE PROCEDURE proc_name (IN/OUT/INOUT parameter_type parameter_name) BEGIN -- 存储过程的SQL语句 END; ``` `proc_name`是存储过程的名称,`parameter_type`是...
创建存储过程 存储过程的创建是 MySQL 存储过程的基础,MySQL 5.0 以后的版本开始支持存储过程。一个存储过程包括名字、参数列表,以及可以包括很多 SQL 语句的 SQL 语句集。创建存储过程的语法如下: ```sql ...
创建存储过程的基本语法如下: ```sql CREATE PROCEDURE procedure_name (param1 type, param2 type, ...) BEGIN -- SQL语句 END; ``` 其中,`procedure_name`是存储过程的名称,`param1, param2`等是输入、输出...
根据给定的信息,我们可以深入探讨PHP与MySQL存储过程的相关知识点,包括如何在MySQL中使用`CONCAT`函数、创建存储过程以及如何通过PHP脚本来调用这些存储过程。 ### 使用 CONCAT 函数 #### 标题中的示例 ```sql ...
综上所述,本实例教程详细介绍了在MySQL5.0以后的版本中创建存储过程的步骤,包括命令提示符的使用、数据库连接、存储过程的创建和调用、以及存储过程的删除等关键技术点。通过本教程,读者可以掌握如何使用存储过程...
在MySQL中,创建存储过程通常使用`CREATE PROCEDURE`语句。例如,一个简单的增操作存储过程可能是这样的: ```sql DELIMITER // CREATE PROCEDURE InsertData(IN name VARCHAR(255), IN age INT) BEGIN INSERT ...
创建存储过程时,需要修改MySQL的默认命令结束符,否则会因为分号结束导致存储过程的编译失败。使用delimiter关键字可以指定新的结束符,创建完毕后应恢复默认的结束符。 调用存储过程时使用call语句,同时可以指定...
此过程涉及使用`StructDescriptor`和`ArrayDescriptor`创建描述符,然后使用这些描述符构建`STRUCT`和`ARRAY`对象,最终作为参数传递给存储过程。 ```java private static ARRAY getOracleArray(Connection con, ...
#### 创建存储过程 基本语法如下: ```sql DELIMITER $$ CREATE PROCEDURE proc_name(IN in_param_type) BEGIN -- SQL语句 END$$ DELIMITER ; ``` 总结来说,MySQL中的索引、触发器、事务和存储过程都是非常重要的...
在MySQL 中,可以使用`CREATE PROCEDURE`语句来创建存储过程。以下是一个简单的存储过程示例,用于批量插入数据到指定的表中: ```sql DELIMITER $$ CREATE PROCEDURE InsertBatchData(IN in_table_name VARCHAR...
在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...
MySQL中使用create procedure命令来创建存储过程,语法:Create procedure存储过程名([参数列表])begin存储过程体end 调用存储过程 要想使存储过程发挥作用,必须使用Call语句进行调用,语法:Call 存储过程名(...
如果需要顺序调用多个存储过程,由于每个存储过程调用后可能改变数据库状态,可能导致后续调用失败。在这种情况下,一种解决方案是在调用每个存储过程后,关闭当前连接,然后再重新连接,如下所示: ```php mysqli_...
1. **创建MySQL存储过程** 在MySQL中,我们可以通过以下步骤创建一个名为`add_pro`的存储过程。首先,设置分隔符为`//`,这样我们可以避免SQL语法错误。然后,定义存储过程,接受两个整数输入参数`a`和`b`,以及一...
- **异常处理**:合理设计异常处理逻辑,确保存储过程在遇到问题时能够优雅地失败。 #### 七、结论 存储过程是MySQL 5.0中的一项强大特性,它可以帮助开发者更高效地管理和操作数据库。通过深入理解其工作原理和...