我在文中的作用是什么_MySQL删除数据

我在文中的作用是什么_MySQL删除数据mysqldelimiter

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

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

默认情况下,delimiter是分号(;) 。

在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。如输入下面的语句

mysql> select * from test_table;

Jetbrains全家桶1年46,售后保障稳定

然后回车,那么MySQL将立即执行该语句。

但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。

如试图在命令行客户端中输入如下语句

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一遇到分号,它就要自动执行。默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。即,在语句RETURN ”;时,mysql解释器就要执行了。

      这种情况下,就需要事先把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解释器才会执行这段语句。

Mysql中delimiter作用

1. delimiter

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

2. delimiter使用

设置mysql触发器时的使用例子

mysql> delimiter // 
mysql> create trigger upd_check before update on account  
  -> for each row 
  -> begin 
  -> if new.amount < 0 then 
  -> set new.amount=0; 
  -> elseif new.amount > 100 then 
  -> set new.amount = 100; 
  -> end if; 
  -> end; 
  -> // 
Query OK, 0 rows affected (0.00 sec) 
mysql> delimiter ; 

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/207459.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 用户态和内核态切换开销_进程切换在用户态还是内核态

    用户态和内核态切换开销_进程切换在用户态还是内核态1.切换方式从用户态到内核态切换可以通过三种方式,或者说会导致从用户态切换到内核态的操作:系统调用,这个上面已经讲解过了,在我公众号之前的文章也有讲解过。其实系统调用本身就是中断,但是软件中断,跟硬中断不同。系统调用机制是使用了操作系统为用户特别开放的一个中断来实现,如Linux的int80h中断。 异常:如果当前进程运行在用户态,如果这个时候发生了异常事件,会触发由当前运行进程切换到处理此异常的内核相关进程中 外围设备中断:外围设备完成用户请求的操作之后,会向CPU发出中断信号,这

  • oracle触发器报错语法,oracle触发器

    oracle触发器报错语法,oracle触发器oracle触发器系统默认用户浏览4438oracle触发器怎么写?通过编写数据库触发器,在HR数据库上实现下面的业务规则:1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长…通过编写数据库触发器,在HR数据库上实现下面的业务规则:1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长推荐于2019-06-0421:52:46创建触发器,给触发器命名,在哪个表上的增删改…

  • __cplusplus、extern “C”关键字

    __cplusplus、extern “C”关键字   我们在阅读程序时,经常会见到__cplusplus关键字,比如下面的代码:#ifdef__cplusplusextern"C"{#endifvoid*memset(void*,int,size_t);#ifdef__cplusplus}#endif  这里面,两种关键字,都是为了实现C++与C兼容的,extern“C”是用来在C++程序中声明或…

    2022年10月25日
  • 基于MAX31865的温度控制系统

    基于MAX31865的温度控制系统系统介绍这是之前写的关于MAX31865测温相关的文章,本次在此基础上又实现了一些新功能。总结——STM32F103C8T6通过MAX31865读取PT100电阻值STM32控制max31865,利用pt100测温度,利用0.96OLED液晶显示屏显示温度值。温度过高控制风扇开启,温度过低控制加热膜加热。后续需要增加温度过高或过低蜂鸣器响且液晶有提示报警类型。系统组成STM32F103C8T6小系统板单片机核心板STM32开发板学习板实验板(升级版)MAX31865RTD铂电阻温度检测器

  • python官方库和第三方库_网络爬虫第三方库

    python官方库和第三方库_网络爬虫第三方库Python的强大之处除了它的简洁易用,最厉害的就是它有着广泛的第三方库支持。今天小编就带你看下Python有哪些常用第三库吧,知道且用过超过10个的欢迎留言~文本处理与格式转换Char…

  • D3DXMatrixMultiply 函数

    D3DXMatrixMultiply 函数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号