Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 触发器以防止对特定列进行更新_Postgresql - Fatal编程技术网

Postgresql 触发器以防止对特定列进行更新

Postgresql 触发器以防止对特定列进行更新,postgresql,Postgresql,我在这方面是新手,我有点不知道我应该去哪里。我试图阻止表中特定列的更新。如果试图更新,它将中止并抛出异常消息 IF (TG_OP = 'UPDATE') THEN SELECT columnName FROM TableName ABORT; RAISE EXCEPTION 'Cannot modify'; END IF; 更新时的触发器可以简单地确保列与新旧版本上的比较相同 IF OLD.column IS DISTIN

我在这方面是新手,我有点不知道我应该去哪里。我试图阻止表中特定列的更新。如果试图更新,它将中止并抛出异常消息

    IF (TG_OP = 'UPDATE') THEN
        SELECT columnName
        FROM TableName
        ABORT;
        RAISE EXCEPTION 'Cannot modify';
END IF;

更新时的触发器可以简单地确保列与新旧版本上的比较相同

IF OLD.column IS DISTINCT FROM NEW.column THEN
    NEW.column := OLD.column;
END IF;