plv8函数忽略了immutable strict

时间:2014-06-28 22:00:49

标签: postgresql postgresql-9.3 plv8

我认为无法修改数据库无法修改。

以下内容在'some_table'中插入一个新行:

CREATE FUNCTION insert_row() RETURNS void AS
$$
  plv8.execute('INSERT INTO some_table (number) VALUES ($1)', [123]);
$$
LANGUAGE plv8 IMMUTABLE STRICT;

是否无法阻止修改数据库的功能?

1 个答案:

答案 0 :(得分:0)

这对我有用。

如果我执行类似的事情:

select insert_row() from some_OTHER_table;

无论some_other_table中的行数是多少,我都会在some_table中获得一个新行。

如果您不希望您的函数修改数据库,请不要在其中添加插入或更新语句。