SET TRANSACTION
名称
SET TRANSACTION —— 设置当前事务的特性。
概要
SET TRANSACTION transaction_mode
其中 transaction_mode 是下列几种选项之一
ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED }
READ WRITE | READ ONLY
描述
SET TRANSACTION 设置当前事务的特性,而对后面的事务没有任何作用。允许使用的事务处理特性是事务隔离别级别和事务访问模式(读/写或者只读)。当其它事务处于并发运行状态时候,事务的隔离级别决定了事务能看到的数据:
READ COMMITTED
语句只能看到这个语句运行前提交的记录,这是缺省设置。
SERIALIZABLE
在事务中执行完成第一个查询或者数据修改语句之前,所有当前事务的语句只能看到已提交的记录。
在事务中第一个查询或者数据修改语句(包括 SELECT、INSERT、DELETE、UPDATE 或者 FETCH)运行后,事务隔离级别不能改变。
事务访问模式决定了事务是读/写模式,还是只读模式。读/写模式是缺省状况。当事务是只读模式的时候,不允许执行下面这些 SQL 命令:INSERT,UPDATE,如果他们写入的不是临时表那么也包括 DELETE 命令;所有的 CREATE、ALTER 和 DROP 命令。COMMENT、GRANT、REVOKE、TRUNCATE;并且如果执行的命令包括上面列出的命令,也包括 EXECUTE 命令。这是一个高级别关于只读的概念,不能防止到磁盘的所有写操作。
TRUNCATE
名称
TRUNCATE —— 清空一张表。
概要
TRUNCATE TABLE name
描述
TRUNCATE 命令快速从表中清除所有记录,和非限定的 DELETE 语句的作用相同,但是因为它不实际扫描表,所以执行速度更快。对清空大表内容这样的操作来说,这条命令是非常有用的。
参数
name
要截断表的名称(可以采用选模式限定的方式引用)。
注意
如果从其它表到要截断的表有外键引用,则不能使用 TRUNCATE 命令。在这种情况下,检查有效性的操作将会要求进行表扫描,在实际应用中不推荐这么做。
TRUNCATE 命令将不会触发任何用户在表上定义的 ON DELETE 触发器。
示例
截断表 bigtable。
TRUNCATE TABLE bigtable;
复制