当前位置: 首页 > news >正文

wordpress目的/长沙快速排名优化

wordpress目的,长沙快速排名优化,废品回收在哪个网站做效果好,河南网站排名2019独角兽企业重金招聘Python工程师标准>>> 我用记事本写了一个简单的存储过程如下: delimiter$$ create procedure show_users() comment 查看market数据库中的user表中的所有信息 begin select * from user; END$$ delimiter; 保存为show_users.sql 执…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

我用记事本写了一个简单的存储过程如下:

delimiter$$

create procedure show_users()

comment '查看market数据库中的user表中的所有信息'

begin

select * from user;

END$$

delimiter;

保存为show_users.sql

执行(show_users.sql在工作目录,如果不在请加上绝对路径):

mysql> source show_users.sql

发生错误信息为:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near 'delim

iter$$create procedure show_users()

comment '?鿴market???ݿ??е?user??????' at line 1

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near 'END$$

delimiter' at line 1

    首先是看到了有乱码,我们可以先来看一下数据库的编码信息:

mysql> show variables like 'char%';

203734_4Pci_2474629.png

    发现是mysql数据可以的除了文件系统的编码是binary其他的编码都是utf8MySQL中把utf-8的别名设置为utf8

我们是用记事本编写存储过程并导入执行的,记事本的默认的编码是ANSI,所以我们改变一下我们存储过程文件show_users.sql的编码方式。可以选择记事本文件菜单下的另存为,编码选择utf-8就可以了。

204208_W06B_2474629.png

我们再来看一看错误信息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use near 'END$$

delimiter' at line 1

    我们得到的信息提示是语法错误,在END$$附近。我们暂时还不清楚1064到底是什么错误,我们用MySQL提供的工具perror来看一看错误代码1064代表什么。

C:\Users\Administrator>perror 1064(请保证mysql的bin目录在系统环境变量中,如果没有请加上绝对路径)

204659_kaCq_2474629.png

   第一个是MySQL1064的错误代码信息,第二个是Windows的1064错误代码信息。

      ER_PARSE_ERROR解析错误,说明我们犯了什么基本的语法错误,但是END$$好像并没有错误。整个存储过程也很简单,我们可以简单分析一下,其他地方都是SQL语句,应该没有没有错误。报错的的地方是END$$,我们可以猜测要么是这个地方出错了,要么是开始的delimiter$$出错了,END$$我们可不出什么错误,所以我们从delimiter$$开始分析一下。

       delimiter是MySQL的一个关键字,是用来修改SQL语句的结束符的,这句话的意思是把SQL语句的结束符修改为$$为了避免和存储过程的结束符冲突。

    尝试了很多次才发现,既然delimiter是一个关键字,那么delimiter和$$之间是不是应该有一个空格分开呢?尝试在delimiter和$$之间加上空格分隔,发现问题确实是delimiter$$之间少了一个空格。后来想一想也对,delimiter是一个关键字,如果和$直接没有空格分开,MySQL应该就会就会把它解析为delimiter$$标识符。

上一个问题算是解决了,我们来重新执行:

mysql> source show_users.sql

ERROR 1044 (42000): Access denied for user 'tim'@'%' to database 'market'

这个错误信息,很容易知道,用户tim没有权限,用管理员用户为tim用户赋予创建存储过程的权限。

mysql> grant create routine on market.* to tim;

flush privileges;(刷新系统权限表,有时候,需要重新登录)

再次重新执行:

211145_D7Ev_2474629.png

这次我们发现没有任何问题了,我们来查看一下:

211332_rzXt_2474629.png


调用存储过程(需要执行存(execute)储过程的权限,同上,用管理员账户赋予):

211536_osfg_2474629.png

       到此终于完成了第一个存储过程的执行,我们发现这其实并不是一个容易的过程,不过我们也知道了一些其他实用的东西,相信以后就会慢慢熟悉,很快定位错误了。

转载于:https://my.oschina.net/u/2474629/blog/527509

http://www.jmfq.cn/news/4751695.html

相关文章:

  • 微信公众号h5商城网站开发/百度联盟是什么
  • 网站之间如何交换友情链接/新媒体营销六种方式
  • 网站建设一流公司/学历提升哪个教育机构好一些
  • 网站设计建设公司/短视频运营公司
  • django 网站开发案例/站长工具seo综合查询分析
  • wordpress短网址/湖南百度seo
  • wordpress 干什么/搜索引擎优化包括哪些
  • 自己做网站不用WordPress/专业seo外包
  • 成都企业网站的建立/培训学校招生营销方案
  • 备案博客域名做视频网站会怎么样/国内最好的危机公关公司
  • 初中做网站软件/网站运营指标
  • 免费注册店铺位置/抖音seo培训
  • 网站后台登陆验证码不显示/郑州百度seo
  • 网站建设概念股/百度推广公司怎么代理到的
  • 广州番禺区房价/网络营销企业网站优化
  • 品牌的手机网站制作/网络营销的特点主要包括什么
  • 建设网站需要的硬件设备/爱用建站
  • 包头做网站的/手机百度2020最新版
  • 字母logo设计生成器/电商网站seo怎么做
  • 珠海pc网站建设/惠州网站建设方案推广
  • 美国人做网站/全网搜索指数
  • 重庆妇科医院推荐/百度seo发包工具
  • 网站怎么做拉新/网站秒收录工具
  • 随州公司做网站/关键词优化推广排名软件
  • 公司自己做网站/深圳百度seo怎么做
  • wordpress直接上传视频网站/sem竞价推广托管
  • 宿迁西楚房产网/深圳市企业网站seo营销工具
  • 豪禾创意海报设计理念/济南seo培训
  • 临海手机网站/电商还有发展前景吗
  • 智慧团建学生登录入口手机版/宁波受欢迎全网seo优化