相关疑难解决方法(0)

PostgreSQL RULEs有什么用?

我经常看到它声明应该避免使用规则并使用触发器.我可以看到规则系统中的危险,但当然有规则的有效用途,对吧?这些是什么?

我出于一般兴趣而对此提出这个问题; 我对数据库不太熟悉.

可能是有效用途的示例

例如,在过去我需要锁定某些数据,所以我做了类似这样的事情:

CREATE OR REPLACE RULE protect_data AS
  ON UPDATE TO exampletable             -- another similar rule for DELETE
  WHERE OLD.type = 'protected'
  DO INSTEAD NOTHING;
Run Code Online (Sandbox Code Playgroud)

然后,如果我想编辑受保护的数据:

START TRANSACTION;
  ALTER TABLE exampletable DISABLE RULE protect_data;
  -- edit data as I like
  ALTER TABLE exampletable ENABLE RULE protect_data;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

我同意这是hacky,但在这种情况下我无法更改访问数据库的应用程序(甚至在它上面抛出错误).所以奖励积分查找原因,这是一个危险的/无效的使用规则系统的,但不是为什么,这是不好的设计.

database postgresql triggers rules

35
推荐指数
4
解决办法
2万
查看次数

postgresql:\ copy方法输入有效条目并丢弃异常

输入以下命令时:

\copy mmcompany from '<path>/mmcompany.txt' delimiter ',' csv;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: duplicate key value violates unique constraint "mmcompany_phonenumber_key"
Run Code Online (Sandbox Code Playgroud)

我理解为什么会这样,但是如何以插入有效条目的方式执行命令,并且会丢弃创建错误的命令?

sql postgresql commit

2
推荐指数
1
解决办法
1552
查看次数

标签 统计

postgresql ×2

commit ×1

database ×1

rules ×1

sql ×1

triggers ×1