在PostgreSQL 9.4.2中使用“CREATE TRIGGER”的锁定(如果有的话)

时间:2015-11-24 19:58:17

标签: postgresql triggers postgresql-9.4

根据postgres-xlCREATE TRIGGER使用SHARE ROW EXCLUSIVE锁定,但根据SHARE ROW EXCLUSIVE的{​​{3}}:

  

任何PostgreSQL都不会自动获取此锁定模式   命令。

1 个答案:

答案 0 :(得分:4)

您将Postgres-XL与主PostgreSQL文档进行比较。两种不同的产品,虽然有共同的历史。 Postgres-XL从库存PostgreSQL中发现了很多批次的变化。

angular.module('sccateringApp') .controller('newCategoryController', ['httpcalls', '$scope', function (httpcalls, $scope) { $scope.submitForm = function(){ alert(); } }]); 应列在Pg文档中,但并非如此,这是一种疏忽。

快速查看源代码会发现CREATE TRIGGER需要CREATE TRIGGER,因此在这种情况下,XL的文档符合PostgreSQL的行为。

你可以自己检查一下,而不是通过做这样的事情来查看来源:

ShareRowExclusiveLock

...这表明我对阅读资料来说错了,因为:

CREATE TABLE test();

CREATE OR REPLACE FUNCTION dummy_tg() RETURNS TRIGGER
LANGUAGE plpgsql AS $$ BEGIN END; $$;

BEGIN;

CREATE TRIGGER blah BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE dummy_tg();

\x

SELECT * FROM pg_locks 
WHERE pid = pg_backend_pid() 
AND relation = 'test'::regclass;

ROLLBACK;

它使用了一个AccessExclusiveLock。