我有一张标准桌子
Column | Type | Modifiers
--------+------------------------+----------------------------------------------------
id | integer | not null default nextval('users_id_seq'::regclass)
name | character varying(255) |
email | character varying(255) |
active | boolean |
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
接下来如果我执行
ALTER TABLE "users" DISABLE TRIGGER ALL
然后当我执行
SELECT "users".* FROM "users" WHERE "users"."id" = 1
如果我检查解释应该使用索引吗?
根据文档,在我看来,当触发器被禁用时,主键索引也被禁用。
禁用/启用 [ 副本 | ALWAYS ] TRIGGER 这些表单配置触发属于表的触发器。系统仍然知道禁用的触发器,但在其触发事件发生时不会执行。对于延迟触发器,在事件发生时检查启用状态,而不是在实际执行触发器功能时检查。可以禁用或启用由名称指定的单个触发器,或表上的所有触发器,或仅用户触发器(此选项不包括内部生成的约束触发器,例如用于实现外键约束或可延迟唯一性和排除约束的那些)。禁用或启用内部生成的约束触发器需要超级用户权限;应该谨慎执行,因为如果不执行触发器,当然不能保证约束的完整性。触发器触发机制也受配置变量 session_replication_role 的影响。当复制角色为“origin”(默认)或“local”时,将触发简单启用的触发器。配置为 ENABLE REPLICA 的触发器仅在会话处于“副本”模式时才会触发,并且无论当前的复制模式如何,配置为 ENABLE ALWAYS 的触发器都会触发。