我是吴京 2022-11-22 12:14 采纳率: 67.4%
浏览 0
已结题

MySQL关于关键字的问题

mysql> set global transaction isolation level repeatable read;                                                                                 
mysql> begin;
mysql> insert into user values (1, 'jeff');
mysql> commit;

请问这里的begin是什么意思?

  • 写回答

2条回答 默认 最新

  • 语言-逆行者 2022-11-22 12:35
    关注

    通常begin-end用于定义一组语句块,在各大数据库中的客户端工具中可直接调用,但在mysql中不可。begin-end、流程控制语句、局部变量只能用于函数、存储过程内部、游标、触发器的定义内部。以下的'[]'表示可选内容。1、begin-end: [begin_label:] BEGIN [statement_list]END [end_label]如:beginselect * from user;end2、if语句IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list]END IF如:BEGINSET b=110;IF b>0 THENSELECT a+b;END IF;注意,end if后面要根据情况加';',有些不爽啊,不像sqlserver那样3、while语句[begin_label:] WHILE search_condition DO statement_listEND WHILE [end_label] 如:BEGINWHILE a<10 DOSET a=a+1;END WHILE;SELECT a;END//4、局部变量DECLARE var_name[,...] type [DEFAULT value]如 declear a int(2) default 2;注意该语句使用的地方(不能在外部程序中使用)5、赋值语句setSET var_name = expr [, var_name = expr] ...如set a=5;set a=a+4;赋值的所有操作都要使用set语句,直接使用a=5的操作是非法的注意该语句使用的地方(不能在外部程序中使用)6、@操作符@a用于定义一个全局变量,该变量的生命周期只在本次连接。set @a=3;赋值语句set @a=b语句可存在于任何语句块中总结: mysql与sqlserver的语法还是有区别的如变量的声明,流程控制块,begin-end语句等都有差异,语法更加严格啰嗦,个人感觉不是很爽。另外mysql还有一些控制语句,如 leave Label,Loop label,repeat until等,都有些啰嗦繁琐,而这些语句实现的功能借助前面几个都可以实现,故在此不述

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月28日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?