2
CREATE OR REPLACE FUNCTION my_validate_func(obj JSON)
RETURNS BOOLEAN AS $$
  return true;
$$ LANGUAGE plv8;

CREATE TABLE tbl (col1 TEXT, col2 INTEGER)
CHECK (my_validate_func(row_to_json(*))); -- syntax error :(

我想使用CHECK约束而不是触发器为整行调用我自己的验证函数 - 可能吗?

4

2 回答 2

2

row_to_json(tbl.*),或者简单地说row_to_json(tbl),应该做的伎俩。

于 2015-05-19T11:55:43.707 回答
2
CREATE TABLE tbl (
  col1 TEXT,
  col2 INTEGER,
  CHECK ( my_validate_func(row_to_json(tbl.*)))
); 

不会给你 DDL 错误:)

于 2015-05-19T12:04:36.617 回答