Postgresql插入触发器设置值

前端之家收集整理的这篇文章主要介绍了Postgresql插入触发器设置值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设在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);
原文链接:https://www.f2er.com/postgresql/193291.html

猜你在找的Postgre SQL相关文章