华为云用户手册

  • 参数说明 name 新订阅的名称。 取值范围:字符串,要符合标识符的命名规范。 conninfo 连接发布端的字符串。 如host=1.1.1.1,2.2.2.2 port=10000,20000 dbname=postgres user=repusr1 password=password_123。 host 发布端IP地址,可以同时指定发布端主机和备机的IP地址,如果同时指定了多个IP,以英文逗号分隔。 port 发布端端口,此处的端口不能使用主端口,而应该使用主端口+1端口,否则会与线程池冲突。可以同时指定发布端主机和备机的端口,如果同时指定了多个端口,以英文逗号分隔。 host和port的数量要一致,并且要一一对应。 dbname 发布所在的数据库。 user和password 用于连接发布端且具有系统管理员权限(SYSADMIN)或者运维管理员权限(OPRADMIN)的用户名和密码。 publication_name 要订阅的发布端的发布名称,一个订阅可以对应多个发布。 WITH ( subscription_parameter [= value] [, … ] ) 该子句指定订阅的可选参数。支持的参数有: enabled 指定订阅是否应该主动复制,或者是否应该只是设置,但尚未启动。 取值范围:true,false。 默认值:true。 create_slot 指定该命令是否要在发布者上创建复制槽。 取值范围:true,false。 默认值:true。 slot_name 要使用的复制槽的名称。 取值范围:字符串。 默认值:默认使用订阅名称作为复制槽的名称。
  • 语法格式 更新订阅的连接信息。 1 ALTER SUBSCRIPTION name CONNECTION 'conninfo' 更新订阅的发布端的发布名称。 1 ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] 激活订阅。 1 ALTER SUBSCRIPTION name ENABLE 禁用订阅。 1 ALTER SUBSCRIPTION name DISABLE 设置订阅的参数。 1 ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] ) 更改订阅的所有者。 1 ALTER SUBSCRIPTION name OWNER TO new_owner
  • 参数说明 name 待修改的订阅的名称。 取值范围:字符串,符合标识符命名规范。 CONNECTION 'conninfo' 该子句修改最初由CREATE SUBSCRIPTION设置的连接属性。 详细的参数说明参考conninfo参数说明。 publication_name 新发布的名称。 取值范围:字符串,符合标识符命名规范。 ENABLE 启用先前禁用的订阅,在事务结束时启动逻辑复制工作。 DISABLE 禁用正在运行的订阅,在事务结束时停止逻辑复制工作。 SET ( publication_parameter [= value] [, ... ] ) 该子句修改最初由CREATE PUBLICATION设置的发布参数。详细的参数说明请参考CREATE SUBSCRIPTION的参数说明。 new_owner 订阅新所有者的用户名称。 new_name 订阅的新名称。
  • 示例 创建一个发布,发布两个表和两个模式中所有更改。 创建示例表tpcds.ship_mode_t1: CREATE TABLE tpcds.ship_mode_t1 ( SM_SHIP_MODE_SK INTEGER NOT NULL, SM_SHIP_MODE_ID CHAR(16) NOT NULL, SM_TYPE CHAR(30) , SM_CODE CHAR(10) , SM_CARRIER CHAR(20) , SM_CONTRACT CHAR(20) ) WITH (ORIENTATION = COLUMN,enable_disaster_cstore='on') DISTRIBUTE BY HASH(SM_SHIP_MODE_SK); 创建示例表tpcds.customer_address_p1: CREATE TABLE tpcds.customer_address_p1 ( CA_ADDRESS_SK INTEGER NOT NULL, CA_ADDRESS_ID CHAR(16) NOT NULL, CA_STREET_NUMBER CHAR(10) , CA_STREET_NAME VARCHAR(60) , CA_STREET_TYPE CHAR(15) , CA_SUITE_NUMBER CHAR(10) , CA_CITY VARCHAR(60) , CA_COUNTY VARCHAR(30) , CA_STATE CHAR(2) , CA_ZIP CHAR(10) , CA_COUNTRY VARCHAR(20) , CA_GMT_OFFSET DECIMAL(5,2) , CA_LOCATION_TYPE CHAR(20) ) WITH (ORIENTATION = COLUMN,enable_disaster_cstore='on') DISTRIBUTE BY HASH(CA_ADDRESS_SK); 创建示例模式myschema1: CREATE SCHEMA myschema1; 创建示例模式myschema2: CREATE SCHEMA myschema2; 创建发布,发布两个表和两个模式中所有更改。 CREATE PUBLICATION mypublication FOR TABLE users, departments, ALL TABLES IN SCHEMA myschema1, myschema2; 创建一个发布,发布所有表中的所有更改。 CREATE PUBLICATION alltables FOR ALL TABLES;
  • 语法格式 1 2 3 4 CREATE PUBLICATION name [ FOR ALL TABLES | FOR publication_object [, ... ] ] [ WITH ( publication_parameter [=value] [, ... ] ) ]; 其中发布对象publication_object为: TABLE table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ... ]
  • 参数说明 name 新发布的名称。 取值范围:字符串,要符合标识符的命名规范。 FOR ALL TABLES 将发布标记为复制数据库中所有细粒度容灾主表的更改,包括在将来创建的表。 FOR TABLE 指定要添加到发布的表的列表。只有细粒度容灾主表才能成为发布的一部分。 table_name 要添加到发布的表的名字,可以带模式名。 取值范围:字符串,要符合标识符的命名规范。 FOR ALL TABLES IN SCHEMA 将发布标记为复制指定模式列表中所有细粒度容灾主表的更改,包括在将来创建的表。 schema_name 要添加到发布的模式的名称。 取值范围:字符串,要符合标识符的命名规范。 WITH ( publication_parameter [=value] [, ... ] ) 该子句指定发布的可选参数。支持下列参数: publish 这个参数决定了哪些DML操作将由新的发布给订阅者。 取值范围:字符串,用逗号分隔的操作列表。允许的操作是insert,update,delete和truncate。 默认发布所有动作,所以这个选项的默认值是:'insert, update, delete, truncate'。
  • 注意事项 该语法仅8.2.0.100及以上集群版本支持。 如果既没有指定FOR TABLE,也没有指定FOR ALL TABLES, 那么这个发布就是以一组空表开始的,可以在后续添加表。 创建发布不会开始复制。它只为未来的订阅者定义一个分组和过滤逻辑。 要创建一个发布,调用者必须拥有当前数据库的CREATE权限。 要将表添加到发布中,调用者必须拥有该表的所有权。FOR ALL TABLES和FOR ALL TABLES IN SCHEMA子句要求调用者具有系统管理员权限。 对一个待发布表,不能同时通过FOR TABLE和FOR ALL TABLES IN SCHEMA方式添加到同一个发布中。
  • 示例 向发布中添加表。 ALTER PUBLICATION mypublication ADD TABLE mydata2; 从发布中删除模式。 ALTER PUBLICATION mypublication DROP ALL TABLES IN SCHEMA myschema1; 重新设置发布的发布对象。 ALTER PUBLICATION mypublication SET TABLE mydata2, ALL TABLES IN SCHEMA myschema2; 修改发布的所有者。 ALTER PUBLICATION mypublication OWNER TO user1; 修改发布名称。 ALTER PUBLICATION mypublication RENAME TO mypublication1;
  • 参数说明 name 待修改的发布的名称。 取值范围:字符串,符合标识符命名规范。 table_name 现有表的名称。 取值范围:字符串,符合标识符命名规范。 schema_name 现有模式的名称。 取值范围:字符串,要符合标识符的命名规范。 SET ( publication_parameter [= value] [, ... ] ) 该子句修改最初由CREATE PUBLICATION设置的发布参数。详细的参数说明请参考CREATE PUBLICATION的参数说明。 new_owner 发布新所有者的用户名称。 new_name 发布的新名称。
  • 语法格式 向发布中添加一个或多个发布对象。 1 ALTER PUBLICATION name ADD publication_object [, ...] 从发布中删除一个或多个发布对象。 1 ALTER PUBLICATION name DROP publication_object [, ...] 用指定的发布对象替换当前发布对象。 1 ALTER PUBLICATION name SET publication_object [, ...] 设置发布的参数,未提及的参数保留其之前的值。 1 ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] ) 更改发布的所有者。 1 ALTER PUBLICATION name OWNER TO new_owner 重命名发布。 1 ALTER PUBLICATION name RENAME TO new_name 其中发布对象publication_object为: TABLE table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ... ]
  • 参数说明 VOLATILE { TEMPORARY | TEMP } 表示释放当前会话中VOLATILE临时表相关资源。 执行DISCARD VOLATILE { TEMPORARY | TEMP }操作后,当前session内所有volatile临时表资源都会被清理,不支持清理单个volatile临时表资源。 TEMP | TEMPORARY 释放当前会话中所有临时表的相关资源,包括VOLATILE临时表和GLOBAL临时表。 PLANS 释放当前会话中所有缓存的查询计划,强制在下次使用相关prepare语句时重新规划。 SEQUEN CES 丢弃缓存的所有序列相关的状态,包括currval()/lastval()信息和任何至今还未通过nextval()返回的预先分配的序列值。 ALL 释放所有与当前会话相关的临时资源,并重置到其初始状态,这与执行以下语句序列有几乎相同的效果: SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; CLOSE ALL; UNLISTEN *; SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD SEQUENCES; DISCARD TEMP; 执行DISCARD ALL成功之后,以pg_temp和pg_toast_temp开头的schema也会被删除。 DISCARD ALL不允许在事务中执行。
  • 示例 DISCARD VOLATILE临时表 DISCARD操作后,清理当前会话中所有volatile临时表相关资源。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 CREATE VOLATILE TEMP TABLE TX1(A INT) DISTRIBUTE BY HASH(A); CREATE TABLE CREATE VOLATILE TEMP TABLE TX2(A INT) DISTRIBUTE BY HASH(A); CREATE TABLE SELECT * FROM TX1; a --- (0 rows) SELECT * FROM TX2; a --- (0 rows) DISCARD VOLATILE TEMP; SELECT * FROM TX1; ERROR: relation "tx1" does not exist LINE 1: SELECT * FROM TX1; ^ SELECT * FROM TX2; ERROR: relation "tx2" does not exist LINE 1: SELECT * FROM TX2; DISCARD TEMP DISCARD TEMP操作后,清理当前会话中所有临时表相关资源。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 CREATE GLOBAL TEMP TABLE t_global_temp(a int,b int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE INSERT INTO t_global_temp VALUES(1,1),(2,2); INSERT 0 2 CREATE VOLATILE TEMP TABLE t_volatile_temp(a int,b int); CREATE TEMP TABLE t_temp(a int,b int); DISCARD TEMP; SELECT * FROM t_global_temp; a | b ---+--- (0 rows) SELECT * FROM t_volatile_temp; ERROR: relation "t_volatile_temp" does not exist LINE 1: select * from t_volatile_temp; SELECT * FROM t_temp; ERROR: relation "t_temp" does not exist LINE 1: select * from t_temp;
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE EXCEPT RULE except_rule_name WITH ( | BLOCKTIME = VALUE, | CPUTIME = VALUE, | ELAPSEDTIME = VALUE, | CPUSKEWPERCENT = VALUE, | SPILLSIZE = VALUE, | BROADCASTSIZE = VALUE, | MEMSIZE = VALUE, | CPUAVGPERCENT = VALUE, | BANDW IDT H = VALUE, | ACTION = ['abort' | 'penalty'] );
  • 参数说明 rule_name 异常规则集名称。 取值范围:字符串(1-64个字符),要符合标识符的命名规范。 blocktime 作业排队阻塞的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 elapsedtime 作业执行的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 allcputime 作业运行中使用的最大CPU时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 cpuskewpercent 作业执行时的平均CPU使用率,单位:百分比。 取值范围:数值型,-1,1~100。 cpuavgpercent 作业执行时的CPU使用倾斜率,单位:百分比。 取值范围:数值型,-1,1~100。 spillsize 作业执行的最大下盘大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 broadcastsize 作业执行的最大广播大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 memsize 作业执行使用的最大内存大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 bandwidth 作业执行可使用的最大带宽,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。
  • 示例 创建一个异常规则集except_rule1并指定其blocktime规则阈值为3000秒,下盘空间为4000MB。 1 CREATE EXCEPT RULE except_rule1 WITH (blocktime=3000, spillsize=4000, action=abort); 创建一个异常规则集except_rule2并指定其memsize规则阈值为5000MB,默认所采取的异常规则操作为abort。 1 CREATE EXCEPT RULE except_rule2 WITH (memsize=3000); 创建一个资源池并绑定异常规则集except_rule3。 1 CREATE resource pool resource_pool_a1 WITH (except_rule='except_rule3');
  • 参数说明 rule_name 异常规则集名称。 取值范围:字符串,要符合标识符的命名规范。 blocktime 作业排队阻塞的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 elapsedtime 作业执行的最大时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 allcputime 作业运行中使用的最大CPU时间,单位:秒。 取值范围:数值型,-1,1~INT64_MAX。 cpuskewpercent 作业执行时的CPU使用倾斜率,单位:百分比。 取值范围:数值型,-1,1~100。 cpuavgpercent 作业执行时的平均CPU使用率,单位:百分比。 取值范围:数值型,-1,1~100。 spillsize 作业执行的最大下盘大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 broadcastsize 作业执行的最大广播大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 memsize 作业执行使用的最大内存大小,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。 bandwidth 作业执行可使用的最大网络带宽,单位:MB。 取值范围:数值型,-1,1~INT64_MAX。
  • 示例 修改异常规则except_rule1的blocktime规则阈值为3000秒,下盘空间为4000MB。 1 ALTER EXCEPT RULE except_rule1 WITH (blocktime=3000, spillsize=4000); 修改异常规则except_rule2的下盘空间规则spillsize为5000MB。 1 ALTER EXCEPT RULE except_rule2 WITH (spillsize=5000); 修改资源池resource_pool_a1绑定的异常规则集为except_rule3。 1 ALTER resource pool resource_pool_a1 WITH (except_rule='except_rule3'); 解除资源池resource_pool_a1绑定的异常规则集。 1 ALTER resource pool resource_pool_a1 WITH (except_rule='None');
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 ALTER EXCEPT RULE except_rule_name WITH ( | BLOCKTIME = VALUE, | CPUTIME = VALUE, | ELAPSEDTIME = VALUE, | CPUSKEWPERCENT = VALUE, | SPILLSIZE = VALUE, | BROADCASTSIZE = VALUE, | MEMSIZE = VALUE, | CPUAVGPERCENT = VALUE, | BANDWIDTH = VALUE, | ACTION = ['abort' | 'penalty'] );
  • RoaringBitmap类型 GaussDB (DWS)自8.1.3集群版本开始,支持RoaringBitmap数据类型,用于存储位图数据集。 roaringbitmap数据类型支持行存,列存表。 表1 RoaringBitmap类型 名字 存储容量 描述 范围 RoaringBitmap 32 字节 存储位图数据集 -2,147,483,648~2,147,483,647 示例:创建带有roaringbitmap数据类型的表。 1 2 CREATE TABLE r_row (a int ,b text, c roaringbitmap); CREATE TABLE r_col (a int ,b text, c roaringbitmap) with (orientation=column); 父主题: 数据类型
  • 注意事项 不能回滚到未定义的保存点,语法上会报错。 在保存点方面,游标有一些非事务性的行为。任何在保存点里打开的游标都会在回滚掉这个保存点之后关闭。如果一个前面打开了的游标在保存点里面,并且游标被一个FETCH命令影响,而这个保存点稍后回滚了,那么这个游标的位置仍然在FETCH让它指向的位置(也就是FETCH不会被回滚)。关闭一个游标的行为也不会被回滚给撤销掉。如果一个游标的操作导致事务回滚,那么这个游标就会置于不可执行状态,所以,尽管一个事务可以用ROLLBACK TO SAVEPOINT重新恢复,但是游标不能再使用了。 使用ROLLBACK TO SAVEPOINT回滚到保存点。使用RELEASE SAVEPOINT删除保存点,但是保留该保存点建立后执行的命令的效果。
  • 示例 撤销 my_savepoint 建立之后执行的命令的影响: 1 ROLLBACK TO SAVEPOINT my_savepoint; 游标位置不受保存点回滚的影响: 1 2 3 4 BEGIN; DECLARE foo CURSOR FOR SELECT 1 UNION SELECT 2; SAVEPOINT foo; FETCH 1 FROM foo; 1 2 ROLLBACK TO SAVEPOINT foo; FETCH 1 FROM foo;
  • 功能描述 RELEASE SAVEPOINT删除当前事务先前定义的保存点。 保存点删除后便无法再作为回滚点使用,除此之外没有其它用户可见的行为。删除保存点并不能撤销在保存点建立起来之后执行的命令的影响。要撤销那些命令可以使用ROLLBACK TO SAVEPOINT 。在不再需要的时候删除保存点可以令系统在事务结束之前提前回收一些资源。 RELEASE SAVEPOINT也删除所有在指定的保存点建立之后的所有保存点。
  • 示例 以默认方式启动事务: 1 2 3 START TRANSACTION; SELECT * FROM tpcds.reason; END; 以隔离级别为READ COMMITTED,读/写方式启动事务: 1 2 3 START TRANSACTION ISOLATION LEVEL READ COMMITTED READ WRITE; SELECT * FROM tpcds.reason; COMMIT;
  • 参数说明 WORK | TRANSACTION BEGIN格式中的可选关键字,没有实际作用。 ISOLATION LEVEL 指定事务隔离级别,它决定当一个事务中存在其他并发运行事务时它能够看到什么数据。 在事务中第一个数据修改语句(INSERT,DELETE,UPDATE,FETCH,COPY)执行之后,事务隔离级别就不能再次设置。 取值范围: READ COMMITTED:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 READ UNCOMMITTED:读未提交隔离级别,GaussDB(DWS)不支持READ UNCOMMITTED,如果设置了READ UNCOMMITTED,实际上使用的是READ COMMITTED。 REPEATABLE READ: 可重复读隔离级别,仅仅看到事务开始之前提交的数据,它不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 SERIALIZABLE:事务可序列化,GaussDB(DWS)不支持SERIALIZABLE,如果设置了SERIALIZABLE,实际上使用的是REPEATABLE READ。 READ WRITE | READ ONLY 指定事务访问模式(读/写或者只读)。
  • 语法格式 格式一:START TRANSACTION格式 1 2 3 4 5 6 7 START TRANSACTION [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ]; 格式二:BEGIN格式 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
  • 语法格式 设置事务的隔离级别、读写模式。 1 2 3 { SET [ LOCAL ] TRANSACTION|SET SESSION CHARACTERIS TICS AS TRANSACTION } { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...]
  • 参数说明 LOCAL 声明该命令只在当前事务中有效。 SESSION 声明这个命令只对当前会话起作用。 取值范围:字符串,要符合标识符的命名规范。 ISOLATION LEVEL 指定事务隔离级别,该参数决定当一个事务中存在其他并发运行事务时能够看到什么数据。 在事务中第一个数据修改语句(INSERT,DELETE,UPDATE,FETCH,COPY)执行之后,事务隔离级别就不能再次设置。 取值范围: READ COMMITTED:读已提交隔离级别,只能读到已经提交的数据,而不会读到未提交的数据。这是缺省值。 READ UNCOMMITTED:读未提交隔离级别,GaussDB(DWS)不支持READ UNCOMMITTED,如果设置了READ UNCOMMITTED,实际上使用的是READ COMMITTED。 REPEATABLE READ:可重复读隔离级别,仅仅能看到事务开始之前提交的数据,不能看到未提交的数据,以及在事务执行期间由其它并发事务提交的修改。 SERIALIZABLE:事务可序列化,GaussDB(DWS)不支持SERIALIZABLE,如果设置了SERIALIZABLE,实际上使用的是REPEATABLE READ。 READ WRITE | READ ONLY 指定事务访问模式(读/写或者只读)。
  • 注意事项 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。 保存点只能在一个事务块里面建立。在一个事务里面可以定义多个保存点。 函数、匿名块和存储过程中不支持使用SAVEPOINT语法。 由于节点故障或者通信故障引起的分布式节点线程或进程退出导致的报错,以及由于COPY FROM操作中源数据与目标表的表结构不一致导致的报错,均不能正常回滚到保存点之前,而是整个事务回滚。 SQL标准要求,使用savepoint建立一个同名保存点时,需要自动删除前面那个同名保存点。在GaussDB(DWS)数据库里,将保留旧的保存点,但是在回滚或者释放的时候,只使用最近的那个。释放了新的保存点将导致旧的再次成为ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT可以访问的保存点。除此之外,SAVEPOINT是完全符合SQL标准的。
  • 示例 建立一个保存点,然后撤销建立保存点后执行的所有命令的效果: 1 2 3 4 5 6 7 START TRANSACTION; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); COMMIT; 查询表的内容,会同时看到1和3,不能看到2,因为2被回滚。 建立并随后销毁一个保存点: 1 2 3 4 5 6 START TRANSACTION; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT; 查询表的内容,会同时看到3和4。
  • 功能描述 为当前事务做两阶段提交的准备。 在命令之后,事务就不再和当前会话关联了;它的状态完全保存在磁盘上,它被提交成功的可能性非常高,即使是在请求提交之前数据库发生了崩溃也如此。 一旦准备好了,一个事务就可以在稍后用COMMIT PREPARED或 ROLLBACK PREPARED命令分别进行提交或者回滚。这些命令可以从任何会话中发出,而不光是最初执行事务的那个会话。 从发出命令的会话的角度来看,PREPARE TRANSACTION不同于ROLLBACK:在执行它之后,就不再有活跃的当前事务了,并且预备事务的效果无法见到 (在事务提交的时候其效果会再次可见)。 如果PREPARE TRANSACTION因为某些原因失败,那么它就会变成一个ROLLBACK,当前事务被取消。
共100000条