Postgresql插入触发器设置值
发布时间:2020-12-13 16:43:08 所属栏目:百科 来源:网络整理
导读:假设在Postgresql中,我有一个表T,其中一列是C1。 我想在新记录添加到表T时触发一个函数。该函数应检查新记录中列C1的值,如果它为空/空,则将其值设置为“X”。 这可能吗? 您需要一个触发器是正确的,因为为列设置默认值将不起作用 – 默认值仅适用于空值
假设在Postgresql中,我有一个表T,其中一列是C1。
我想在新记录添加到表T时触发一个函数。该函数应检查新记录中列C1的值,如果它为空/空,则将其值设置为“X”。 这可能吗?
您需要一个触发器是正确的,因为为列设置默认值将不起作用 – 默认值仅适用于空值,并且不能帮助您防止空值。
在postgres中有几个步骤来创建触发器: 步骤1:创建一个返回类型触发器的函数: CREATE FUNCTION my_trigger_function() RETURNS trigger AS ' BEGIN IF NEW.C1 IS NULL OR NEW.C1 = '''' THEN NEW.C1 := ''X''; END IF; RETURN NEW; END' LANGUAGE 'plpgsql' 步骤2:创建一个触发器,在插入之前触发,这允许您更改插入的值,调用上述函数: CREATE TRIGGER my_trigger BEFORE INSERT ON T FOR EACH ROW EXECUTE PROCEDURE my_trigger_function() 你做完了。 看到the above code executing on SQLFIddle演示它工作正常! 您在注释中提到从子查询检索值“X”。如果是这样,请更改相关行,如: NEW.C1 := (select some_column from some_table where some_condition); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |