在mysql中创建存储过程出现1307错误,解决方法

需要删除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‘

http://www.2cto.com/database/201305/209107.html

zhuanzai

时间: 2024-08-28 00:33:16

在mysql中创建存储过程出现1307错误,解决方法的相关文章

mysql中Table is read only错误解决方法

今天再我把数据库data 拷贝到linux 下运行程序 ”mysql中Table is read only的解决“ 出现这样的问题,查询资料. linux下执行如下命令即可 #mysqladmin -u root -p flush-tables 还有就是目录权限问题 因为数据较多,导出->导入比较慢,我是直接压缩,下载然后解压的,考虑到目录权限问题,数据库目录的所属用户和组改为mysql 代码 chown -R mysql:mysql(www.111cn.net) /usr/local/mysq

MySql中创建存储过程

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句.特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗.现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高. 一.MySQL 创建存储过程 "pr_add" 是个简单的

mysql 中创建存储过程

mysql中创建存储过程和存储函数虽相对其他的sql语言相对复杂,但却功能强大,存储过程和存储函数更像是一种sql语句中特定功能的一种封装,这种封装可以大大简化外围调用语句的复杂程度. 首先以表employee为例写一个简单的sql存储过程: 下边通过创建一个存储过程实现:输入性别,找出与输入性别相匹配的人的平均年龄,并将平均年龄输出. 这里首先通过delimiter &&,将sql语句的结束符换成&&(默认sql语句的结束符是;) 然后如下所示输入: 此时可以把语句的结束

mysql中Table is read only的解决方法

本文章总结了关于在linux与windows中 mysql出现Table is read only解决办法总结,有需要的朋友可参考一下 如果是使用中的数据库突然出现些类问题 在Linux下面执行下面命令就可以了,当然你要找到你的mysql目录 linux中 复制代码 代码如下: /usr/local/mysql/bin/mysqladmin -u root -p flush-tables 这里的目录不一定都一样的,不知道mysql安装目录的可以用whereis mysql来查找 windows中

Linux中vim命令出现E325错误解决方法

出现该问题的原因是: vim在编辑文件的时候会创建一个swp file来保证文件的安全性,如果没有正常退出vim的,下次打开这个文件就会报E325的错误,提示swp文件已经存在. 解决方法也简单:把这个文件删除了就好了. 文件的位置:#whereis .swp //找到文件位置 原文地址:https://www.cnblogs.com/wangyuehan/p/9807415.html

mysql中创建函数遇到1418错误

错误信息: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 解决办法: 执行sql语句:set global lo

"无法启动程序,因为计算机中丢失*.dll” 运行exe错误解决方法

笔者把编译生成的win32 Release exe文件复制到另外一台电脑上,却发现程序不能运行,报错如下: 报错提示缺失动态链接库pcl_common_release.dll,那为什么在编译生成的电脑就不说缺失动态链接库,而在另一台电脑就缺失呢? 因为笔者已经把pcl_common_release.dll 所在文件夹写在系统环境变量path里,而在另一台电脑,没有安装PCL点云库,不存在该.dll文件,也没有将动态链接库所在文件位置写在环境变量. 解决方案有两种: 一,如果运行电脑安装了所需的P

MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)

官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储过程拼接 2.函数拼接 3.视图里拼接 4.当前查询的session中使用 其实上面都是同一个意思,就是使用一个变量存取这个SQL,然后再执行这个变量. 样例: set @stmt = concat('select * from ',table_name,' limit ?,?'); prepare

linux中grub文件丢失或者错误解决方法

首先我们来看下以下别人博客的解决方案: 第一种情况: 是由于grub中的grub.conf文件损坏,开机后直接进入到了grub>命令行模式下.下面将图解此过程 这时可以使用help看一下grub可支持命令有那些,以便供修复时使用. 第二个使用的命令是find (hd0,0)/按tab如果能补全就表示系统在此分区上. 各个参数说明: 这时要注意,当你指定内核后,但未指定内核后面的参数(ro root=(此处未指定的话))将无法正常启动,报:请给root参数,一般情况下是系统是可以自动探测到,但这个