出现这种情况是因为你建表的SQL语句有错误,
你的给出的代码里option为MYSQL关键字,不能直接写,需要用`包括起来,为: `option` varchar(50) NOT NULL default ''
----下面就没问题了
CREATE TABLE components (
id int(11) NOT NULL auto_increment,
name varchar(50) NOT NULL default '',
link varchar(255) NOT NULL default '',
menuid int(11) unsigned NOT NULL default '0',
parent int(11) unsigned NOT NULL default '0',
admin_menu_link varchar(255) NOT NULL default '',
admin_menu_alt varchar(255) NOT NULL default '',
`option` varchar(50) NOT NULL default '',
ordering int(11) NOT NULL default '0',
admin_menu_img varchar(255) NOT NULL default '',
iscore tinyint(4) NOT NULL default '0',
params text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM
扩展资料:
MYSQL 报错解决:
1.Starting MySQL.Manager of pid-file quit without updating fi[失败]
关于这个错误原因有很多,最大的可能是没有创建测试数据库,可以用/usr/local/mysql/scripts/mysql_install_db _user=mysql命令进行创建;另外一个原因可能是权限设置问题,需要赋予mysql的data权限,可以用chmod -R 命令。
2.FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from
within the directory the archive extracted into. If you compiled
MySQL yourself you must run ‘make install’ first.
这个错误,是没有指明mysql的data路径导致的:
vim /etc/my.cnf
在[mysqld] 后面加上路径:
basedir = /usr/local/mysql
datadir =/opt/data;
3.-bash: mysql: command not found
用mysql命令进行登陆mysql报错,原因是没有设置环境变量,需要设置。
mysql -u root
4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server
用mysql远程工具链接数据库报错,这个错误原因是没有开放远程链接功能,可以在mysql里面输入如下命令进行解决:GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH GRANT OPTION
参考资料:百度百科-mySQL
declare是用来定义变量和常用处理、声明之类的关键字。在mysql存储过程出现之前declare是一块鸡肋,大家常用declare来定义局部变量,我习惯性的还是使用set来定义变量(虽然是全局的,但是来的方便)。存储过程出现后declare的标准处理定义就变成了非常强大的工具,可以用来为存储过程添加一些非常强大的错误处理机制。首先需要提一点的是declare定义变量如果想定义varchar型的,必须注明参数最大长度,即declare varchar(20).在这里我们不深究它用来定义参数的小细节我们主要来研究DECLARE Condition 和 DECLARE HandlerDECLARE Condition 和 DECLARE Handler可以说是为了处理错误而生的。功能上讲DECLARE Condition出现的时间比较早,功能也比较简单,它可以通过错误编号或者SQLSTATE来触发一各名字,说明白一点就是当某个错误编号出现的时候替换一个名字给它。这样调用的时候,我们不用去记一大串错误编号了。它的标准语法我们可以在mysql的附注中找到。DECLARE condition_name CONDITION FOR condition_valuecondition_value:例子如下:DECLARE errname CONDITION FOR SQLSTATE '23000'将返回SQLSTATE信息为23000的错误定名为errname这个名字就可以被我们的绝对重头戏DECLARE Handler调用了,在DECLARE Handler中可以定义错误的处理办法,可以使用begin和end来标记语句块,可以单独使用rollback。处理的过程也可以定义为继续执行和中断存储过程。标准语法:DECLARE handler_type HANDLER FOR condition_value[,...] sp_statementhandler_type: 处理的过程。CONTINUE 继续执行未完成的存储过程,直至结束。(常用,默认)| EXIT 出现错误即自动跳出所在的begin不再执行后面的语句。condition_value: 处理的触发条件SQLSTATE [VALUE] sqlstate_value 不用说了,最常用的错误定义,自己去查错误列表吧。| condition_name 我们刚刚定义的那个名字errnmae就是用在这里的。| SQLWARNING 这个太好用了,从错误编号01开始的错误。相当于错误的通配符。| NOT FOUND 和上面差不多,从02开始。| SQLEXCEPTION 上面两个中没有包括的错误它都可以用来触发,就是说你想定义只要出错就触发的话就定义出错条件为SQLWARNING+SQLEXCEPTION。| mysql_error_code 错误编号,和第一个不一样,不过同样可以在错误列表从中查到,是我比较常用的。例子DECLARE errname CONDITION FOR SQLSTATE '23000'给导致错误23000的错误定义名字为errnameDECLARE continue handler for errname 当errname发生时作下面的处理BEGIN 语句开始set @x=1设置@x=1请采纳。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)