MySQL学习笔记(五):DELIMITER修改结束符及其应用

关于DELIMITER

MySQL中默认的结束符DELIMITER;,它用于标识一段命令是否结束。在默认情况下,在命令行客户端中,如果有一行命令以;结束,那么回车后,MySQL将会执行该命令。

修改DELIMITER

如何修改

在使用习惯中,我们经常将结束符更改为 ;;//$$ 等。

DELIMITER 新的换行符

示例:

mysql> SELECT NOW();    # 默认情况下结束符为 ;
+---------------------+
| NOW()               |
+---------------------+
| 2017-10-30 21:05:34 |
+---------------------+
1 row in set (0.00 sec)

mysql> DELIMITER //     # 更改结束符为 //
mysql> SELECT NOW()//   # 此时结束符已经为 //
+---------------------+
| NOW()               |
+---------------------+
| 2017-10-30 21:05:55 |
+---------------------+
1 row in set (0.00 sec)

mysql>

为什么要修改

有时候我们输入的语句不希望立即执行,但是语句中包含有分号;需要输入时,比如说我们在创建函数或者创建存储过程的时候,我们需要在函数中创建多条语句,此时如果用;分隔不同语句时就会导致直接执行目前所键入的命令,而创建函数或构建方法失败。

案例演示

现在以一个案例来展现,创建一个函数,该函数的作用是根据id删除对应的用户,并返回操作时间。

mysql> SELECT * FROM user_info; 
+----+----------+----------------------------------+------+-----+
| id | username | password                         | age  | sex |
+----+----------+----------------------------------+------+-----+
|  1 | AAA      | 7fc56270e7a70fa81a5935b72eacbe29 |   20 |   1 |
|  2 | BBB      | 9d5ed678fe57bcca610140957afab571 |   25 |   0 |
|  3 | CCC      | 0d61f8370cad1d412f80b84d143e1257 |   22 |   0 |
|  4 | DDD      | f623e75af30e62bbd73d6df5b50bb7b5 |   24 |   1 |
+----+----------+----------------------------------+------+-----+
4 rows in set (0.00 sec)

mysql> DELIMITER //     # 更改结束符为 //
mysql> CREATE FUNCTION delUser(userid INT UNSIGNED)
    -> RETURNS VARCHAR(30) # 设定返回类型
    -> BEGIN
    -> DELETE FROM user_info WHERE id = userid; # 删除指定id用户
    -> RETURN NOW();    # 返回操作时间
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;      # 改回默认结束符;
mysql> SELECT delUser(3);
+---------------------+
| delUser(3)          |
+---------------------+
| 2017-10-30 22:10:25 |
+---------------------+
1 row in set (0.01 sec)

mysql> SELECT * FROM user_info;
+----+----------+----------------------------------+------+-----+
| id | username | password                         | age  | sex |
+----+----------+----------------------------------+------+-----+
|  1 | AAA      | 7fc56270e7a70fa81a5935b72eacbe29 |   20 |   1 |
|  2 | BBB      | 9d5ed678fe57bcca610140957afab571 |   25 |   0 |
|  4 | DDD      | f623e75af30e62bbd73d6df5b50bb7b5 |   24 |   1 |
+----+----------+----------------------------------+------+-----+
3 rows in set (0.00 sec)
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值