1.说明

(1)delimiter在mysql中多地方出现,比如存储过程、触发器、函数等。其实就是告诉mysql解释器,该段命令是否已经结束,mysql是否可以执行。

(2) delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号(;),
如果一次输入的语句较多,并且语句中间有分号,这时需要新指定一个特殊的分隔符。

2.使用演示

(1)如在编译器输入下列语句

mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)
mysql>   RETURNS varchar(255)
mysql> BEGIN
mysql> IF ISNULL(S) THEN
mysql>     RETURN '';
mysql> ELSEIF N<15 THEN
mysql>   RETURN LEFT(S, N);
mysql> ELSE
mysql>   IF CHAR_LENGTH(S) <=N THEN
mysql>      RETURN S;
mysql>   ELSE
mysql>  RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));
mysql>   END IF;
mysql> END IF;
mysql> END; 

默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。即,在语句RETURN '';时,mysql解释器就要执行了。

(2)这种情况下,就需要事先把delimiter换成其它符号,如//或$$。

mysql> delimiter //
mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT)
mysql>   RETURNS varchar(255)
mysql> BEGIN
mysql> IF ISNULL(S) THEN
mysql>  RETURN '';
mysql> ELSEIF N<15 THEN
mysql>   RETURN LEFT(S, N);
mysql> ELSE
mysql>   IF CHAR_LENGTH(S) <=N THEN
mysql>  RETURN S;
mysql>   ELSE
mysql>  RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5));
mysql>   END IF;
mysql> END IF;
mysql> END;//

这样只有当//出现之后,mysql解释器才会执行这段语句。

(3)上面就是,先将分隔符设置为 //,

直到遇到下一个 //,才整体执行语句。

执行完后,最后一行, delimiter ; 将mysql的分隔符重新设置为分号;

如果不修改的话,本次会话中的所有分隔符都以// 为准。

MySQL中delimiter作用相关推荐

  1. MySQL中delimiter的作用

    delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号(:).如果一次输入的语句较多,并且语句中间有分号,这时需要新指定一个特殊的分隔符. delimiter在mysql中多地方出 ...

  2. delimiter在mysql中的作用_细细研究MySql中delimiter起到的作用_MySQL

    MySql中delimiter究竟可以起到些什么作用呢?可能不少人都有这样的疑惑,下文就为您介绍MySql中delimiter的作用,供您参考. MYSQL导出一个SQL后: DELIMITER $$ ...

  3. 【Mysql】MySql中delimiter的作用

    阅读目录 MySql中delimiter的作用 例子 先说结论 MySql中delimiter的作用 Mysql 中默认命令的终止符是; , 但有时候,不希望MySQL这么做,因为你输入的sql 语句 ...

  4. 重音符accent 符号在mysql中的作用

    重音符accent 符号在mysql中的作用 ` 是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名.表名中使用 mysql 的保留字或中文,就不需要转义. 所有的数据库 ...

  5. 数据库mysql中delimiter的作用和用法

    mysql中解释器以分号作为结束标记. 但有时候虽然不想终止,但是又想要执行某一段呢? delimiter|| CREATE TRIGGER changeAvgAge AFTER INSERT ON ...

  6. MySql中delimiter的用法

    这个命令与 存储过程没什么关系. 其实就是告诉 mysql 解释器,该段命令是否已经结束了,mysql是否可以执行了. 即改变输入结束符. 默认情况下,delimiter是分号" ;&quo ...

  7. MySql中 delimiter 详解

    其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了.默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令 ...

  8. MySql中 delimiter 使用

    近日,项目准备上一个新版本,项目组同事加班加点,终于把bug改完,然后在测试环境部署演练了数次. 万事具备,只欠上线... 最终上线执行脚本的时候,还是出现了问题.原因是我们的脚本中有一个函数. 我们 ...

  9. mysql中charset()作用_Mysql系列(四) —— MySQL的Charset和Collation

    一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的"乱码"问题,很有可能就是因为对字符集与字符 ...

最新文章

  1. FPGA之道(64)代码中的约束信息(一)保持约束
  2. Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架
  3. xxe漏洞攻防 简介 xml 引用外部实体 构造恶意内容
  4. 多类SVM的损失函数
  5. linux获取ad用户列表,Powershell小技巧之查询AD用户
  6. 【20180202】使用iptables做MySQL的端口转发
  7. nginx反向代理打印日志_nginx启用TCP反向代理日志配置
  8. 阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
  9. HoloLens 2开发:关闭性能分析窗口
  10. 156.PHP多进程
  11. 获得每种调制方式中每个信噪比的准确度
  12. 小白转行学IT入职BAT应该怎么做
  13. Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat ‘C:\hiberfil.sys‘的解决方案
  14. idr寄存器、_STM32 GPIO寄存器 IDR ODR BSRR BRR
  15. css-对号/叉号(纯css)
  16. Ubuntu20.04+Nvidia RTX 3060 显卡驱动安装
  17. SVO (1)跑数据集
  18. 从0到一开发微信小程序(6)—小程序常用API
  19. [ Linux ] 查看并修改时区
  20. 游戏辅助制作核心--植物大战僵尸逆向之自动捡取阳光(二)

热门文章

  1. Python 学习路线(2022)
  2. 【四圣龙神录的编程教室】第23章、来制作决死炸弹吧
  3. 2021高考成绩查询抖音,2021抖音很火的高考唯美的文案20个
  4. 习题 17:排队提水问题★★
  5. OpenCV C++ 通过Websocket发送摄像头图片到Web端
  6. 计算机毕业设计小程序点餐|外卖|餐饮系统+后台SSM
  7. Windows下的socket通信,实时发送消息
  8. KBOX狂欢,庆祝“赎身”
  9. 【Android高级进阶】论一个普通大学电子商务大三学生,怒刷3000道题逆袭拿到腾讯Offer?
  10. 学习记录439@MySQL json 数据相关操作