CREATE FUNCTION autonomous_test() RETURNS integerLANGUAGE plpgsql AS$$ DECLARE -- 定义使用自治事务PRAGMA AUTONOMOUS_TRANSACTION; BEGIN FOR i IN 0..9LOOP -- 启动自治事务 START TRANSACTION; -- 目前仅支持动态SQL EXECUTE 'INSERT INTO test1 VALUES (' || i::text || ')'; IF i % 2 = 0 THE...
postgresql随机字符串,本篇主要内容如下:6.1 引言6.2 创建函数6.3 存储过程6.3.1 创建过程6.3.2 调用存储过程6.3.3 AUTHID6.3.4 PRAGMAAUTONOMOUS_TRANSACTION6.3.5 开发存储过程步骤6.3.6 删除过程和函数6.3.7 过程与
PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO parts_log VALUES (:NEW .pnum, :NEW .pname); COMMIT ; -- allowed only in autonomous triggers END ; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 自治事务VS嵌套事务 虽然匿名事务是由另一个事务开启的,但它并不是一个嵌套事务: 它不与主事务...
PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXECUTE IMMEDIATE:new.cmd; COMMIT; END; 注意1:上面建的命令表是临时表,因为我们只需要执行触发器,而不需要保存执行的SQL 注意2: 如果想在触发器中执行DDL,需要在自治事务中:PRAGMA AUTONOMOUS_TRANSACTION 注意3:因为是在存储过程中执行DDL,需要显式的对用户赋DDL权限,如: ...
1. src/pl/plpgsql/src/expected/plpgsql_autonomous.out CREATE TABLE test1 (a int); CREATE FUNCTION autonomous_test() RETURNS integer LANGUAGE plpgsql AS $$ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN FOR i IN 0..9 LOOP START TRANSACTION; EXECUTE 'INSERT INTO test1 VALUES (' || i::text |...
存储过程支持自治事务 自治事务可以在存储过程中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与创建存储过程语法相同,示例如下。 --建表 create table t2(a int, b int); insert into t2 values(1 来自:帮助中心 查看更多 → GaussDB(DWS)存储过程声明语法 ...
BULK COLLECT/BIND ASSOCIATIVE ARRAYS NESTED TABLES VARRAYS PL/SQL SUPPLIED PACKAGES PRAGMA EXCEPTION_INIT PRAGMA AUTONOMOUS_TRANSACTION USER DEFINED EXCEPTIONS OBJECT TYPES SUB-TYPES 包包内置函数 高级功能AWR使用说明 客户端驱动PolarPlus JDBC .NET ODBC OCI PHP...
BULK COLLECT/BIND ASSOCIATIVE ARRAYS NESTED TABLES VARRAYS PL/SQL SUPPLIED PACKAGES PRAGMA EXCEPTION_INIT PRAGMA AUTONOMOUS_TRANSACTION USER DEFINED EXCEPTIONS OBJECT TYPES SUB-TYPES 包包内置函数 高级功能AWR使用说明 客户端驱动PolarPlus JDBC .NET ODBC OCI PHP...
存储过程支持自治事务 自治事务可以在存储过程中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与创建存储过程语法相同,示例如下。 --建表 create table t2(a int, b int); insert into t2 values(1 来自:帮助中心 查看更多 → GaussDB(DWS)存储过程声明语法 ...
AUTONOMOUS_TRANSACTION Enable translation of autonomous transactions into a wrapper function using dblink or pg_background extension. If you don't want to use this translation and just want the function to be exported as a normal one without the pragma call, disable this directive. Materialized ...