Postgresql Postgres:仅在插入时带有复选框的约束
我需要在Postgres中设置一个约束,该约束仅在插入查询时触发(不在更新查询时触发) 目前,它的实施方式如下:Postgresql Postgres:仅在插入时带有复选框的约束,postgresql,plpgsql,Postgresql,Plpgsql,我需要在Postgres中设置一个约束,该约束仅在插入查询时触发(不在更新查询时触发) 目前,它的实施方式如下: ALTER TABLE test ADD CONSTRAINT check_something_const CHECK (check_something(id, task_id)) NOT VALID; 其中检查某物 CREATE OR REPLACE FUNCTION check_something(UUID, UUID) RETURNS BOOLEAN AS $$ DECLA
ALTER TABLE test ADD CONSTRAINT check_something_const
CHECK (check_something(id, task_id)) NOT VALID;
其中检查某物
CREATE OR REPLACE FUNCTION check_something(UUID, UUID)
RETURNS BOOLEAN AS $$
DECLARE
existed_id UUID;
BEGIN
SELECT id
INTO existed_id
FROM test WHERE ...etc.
RETURN existed_id IS NULL
END;
$$ LANGUAGE 'plpgsql' VOLATILE;
当前,在更新和插入查询时都会触发check\u something\u const
。
我需要的是,只有在插入新行时才检查此项,而不是更新 这可以通过仅在插入时触发的触发过程来实现。这可以通过仅在插入时触发的触发过程来实现。您需要插入触发器,可以在插入触发器之后/之前使用。您需要一个插入触发器,可以在插入触发器之后/之前使用。