触发器 事务控制 sql MODE mysql分区
2016-11-26 21:37
573 查看
触发器 事务控制 sql mode mysql分区
1.触发器:
创建: create trigger _[befor/after]_ _ [insert/update/delete]_ on _名字_ for each row _语句_ ;
删除: drop trigger [数据库名字 . ] _触发器名字_ ;
查看触发器: show triggers \G ; 或者是查看information_schema.triggers 表[decs triggers ;]
2.事务控制和锁定语句:
锁定语句:lock table 和 unlock table :
lock tables _名字_ [read / write],名字......;
unlock tables ;
事务控制:mysql 通过 set autocommit , start transaction , commit ,rollback ;
具体语法:start transaction \ begin _语句_ ;
commit [and chain release]
rollback [and chain release]
set autocommit = [0/1] ;
注:chain和release子句分别用来定义在提交或者回滚后的动作,chain会立即启动一个新事物, release会断开和客户端的连接。
savepoint和rollback to savepoint ;这就是可以利用部分点来存储位置。回滚的时候可以回滚到指 定位置,release savepoint用来释放保存点。
分布式事务:阶段一:开始: xa start\begin __ __ ; {标识符,和分支标识符} 。
阶段二: 使处于准备状态:xa end __ __ ;
xa prepare __ __ ;
阶段三:提交或者回滚: xa commit __ __ ;
xa rollback __ __ ;
注:查看分支事务详细信息: xa recover ;
3.sql Mode :
作用:sql mode负责 设置模型类型,完成不同严格程度的数据校验。
语法:查看:select @@sql_mode;
设置:set session/global sql_mode=' strict_trans_tables ' ;
注:session 和 global 区别:session代表只在本次连接中生效,global代表本次连接不生效,对 于新的连接则生效。
参数:不严格:sql_mode=' ansi ' ;代表可以插入非法日期参数,值被设置成零。
严格:sql_mode=' traditional ' ;代表非法日期参数不能插入进表格。
失效反斜线[/]:sql_mode=' no_backslash_escapes ' ;代表直接输出反斜线,忽略转义符。
将[||]当作连接符号:sql_mode=' pipes_as_concat ' ;与oracle相匹配。将||当作连接符号。
去掉engin关键字:sql_mode=' no_table_options ' ;查看建表语句时候去掉engin语句。
4.Mysql 分区:
查看是否支持分区:show variables ;来产看当前mysql是否支持分区 。
分区类型:range分区 类似 list分区 | hash分区 类似 key分区 。columns 分区。
range分区:partition by range(__)( partition _ values less than __,partition _ values less than __) ;
注:values less than maxvalue ;代表可以插入最大的整数值。
删除分区:alter table __ drop partition __ ;就可以删除对应表的对应分区。
list分区: partition by list(__)(partition __ valuse in (_,_),patition values in (_,_) ) ;
columns分区:不仅仅支持了整数分区,还支持了其他类型的分区。就是整合了range和list。
所以分为range columns和list columns 。
partition by list columns(_)( pritition __ values in (_,_) ) ;
Hash分区:种类:常规hash分区[取模]和线性hash分区[线性2的幂的运算]:
常规hash分区:partition by hash (__) partitions __ ; 数据分布较均匀,不适合增删改。
线性hash分区:partition by linear hash(_) partitions __ ; 不均匀,适合增删改。
Key分区:类似于hash分区,只是key分区不允许使用自定义表达式,而hash可以。
partition by key (__) partitions __ ;
符合分区:适合于保存非常大的数据记录。
partition by range (_) subpartition by hash(_) subpartitions _ (patititon _ values less than _,...) ;
注:几个分区方法处理null值时候的处理方式不同,range中null当作最小值处理,list中null必须出现在枚举 列表中,hash中null被当作零来处理。
注:通过alter table 命令可实现添加,删除,重定义,合并,拆分 分区的命令。
删除:alter table __ drop partition __ ;
增加:alter table __ add partition __ ;
重定义:拆分alter table __ reorganize partition __ into (partititon _ values less than (),... ) ;拆分。
合并alter table __ reorganize partition __ __ __into(partition _ values less than ()) ;合并。
hash和key的增加和删除跟range和list不一样:减少分区用alter table coalesce partition _ ;来进行减少。
增加分区alter table add partition _ ;来进行增加。
1.触发器:
创建: create trigger _[befor/after]_ _ [insert/update/delete]_ on _名字_ for each row _语句_ ;
删除: drop trigger [数据库名字 . ] _触发器名字_ ;
查看触发器: show triggers \G ; 或者是查看information_schema.triggers 表[decs triggers ;]
2.事务控制和锁定语句:
锁定语句:lock table 和 unlock table :
lock tables _名字_ [read / write],名字......;
unlock tables ;
事务控制:mysql 通过 set autocommit , start transaction , commit ,rollback ;
具体语法:start transaction \ begin _语句_ ;
commit [and chain release]
rollback [and chain release]
set autocommit = [0/1] ;
注:chain和release子句分别用来定义在提交或者回滚后的动作,chain会立即启动一个新事物, release会断开和客户端的连接。
savepoint和rollback to savepoint ;这就是可以利用部分点来存储位置。回滚的时候可以回滚到指 定位置,release savepoint用来释放保存点。
分布式事务:阶段一:开始: xa start\begin __ __ ; {标识符,和分支标识符} 。
阶段二: 使处于准备状态:xa end __ __ ;
xa prepare __ __ ;
阶段三:提交或者回滚: xa commit __ __ ;
xa rollback __ __ ;
注:查看分支事务详细信息: xa recover ;
3.sql Mode :
作用:sql mode负责 设置模型类型,完成不同严格程度的数据校验。
语法:查看:select @@sql_mode;
设置:set session/global sql_mode=' strict_trans_tables ' ;
注:session 和 global 区别:session代表只在本次连接中生效,global代表本次连接不生效,对 于新的连接则生效。
参数:不严格:sql_mode=' ansi ' ;代表可以插入非法日期参数,值被设置成零。
严格:sql_mode=' traditional ' ;代表非法日期参数不能插入进表格。
失效反斜线[/]:sql_mode=' no_backslash_escapes ' ;代表直接输出反斜线,忽略转义符。
将[||]当作连接符号:sql_mode=' pipes_as_concat ' ;与oracle相匹配。将||当作连接符号。
去掉engin关键字:sql_mode=' no_table_options ' ;查看建表语句时候去掉engin语句。
4.Mysql 分区:
查看是否支持分区:show variables ;来产看当前mysql是否支持分区 。
分区类型:range分区 类似 list分区 | hash分区 类似 key分区 。columns 分区。
range分区:partition by range(__)( partition _ values less than __,partition _ values less than __) ;
注:values less than maxvalue ;代表可以插入最大的整数值。
删除分区:alter table __ drop partition __ ;就可以删除对应表的对应分区。
list分区: partition by list(__)(partition __ valuse in (_,_),patition values in (_,_) ) ;
columns分区:不仅仅支持了整数分区,还支持了其他类型的分区。就是整合了range和list。
所以分为range columns和list columns 。
partition by list columns(_)( pritition __ values in (_,_) ) ;
Hash分区:种类:常规hash分区[取模]和线性hash分区[线性2的幂的运算]:
常规hash分区:partition by hash (__) partitions __ ; 数据分布较均匀,不适合增删改。
线性hash分区:partition by linear hash(_) partitions __ ; 不均匀,适合增删改。
Key分区:类似于hash分区,只是key分区不允许使用自定义表达式,而hash可以。
partition by key (__) partitions __ ;
符合分区:适合于保存非常大的数据记录。
partition by range (_) subpartition by hash(_) subpartitions _ (patititon _ values less than _,...) ;
注:几个分区方法处理null值时候的处理方式不同,range中null当作最小值处理,list中null必须出现在枚举 列表中,hash中null被当作零来处理。
注:通过alter table 命令可实现添加,删除,重定义,合并,拆分 分区的命令。
删除:alter table __ drop partition __ ;
增加:alter table __ add partition __ ;
重定义:拆分alter table __ reorganize partition __ into (partititon _ values less than (),... ) ;拆分。
合并alter table __ reorganize partition __ __ __into(partition _ values less than ()) ;合并。
hash和key的增加和删除跟range和list不一样:减少分区用alter table coalesce partition _ ;来进行减少。
增加分区alter table add partition _ ;来进行增加。
相关文章推荐
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- 触发器 事务控制 sql MODE mysql分区
- mysql 第11天 触发器 事务的控制和锁定语句 183页