【发布时间】:2017-01-22 23:18:57
【问题描述】:
有没有办法在数组列上添加一个约束来限制它的长度?我希望这些数组不超过 6 个。是的,我知道新表通常比存储在数组中更好,但我的情况是数组更有意义。
【问题讨论】:
标签: arrays database postgresql database-design relational-database
有没有办法在数组列上添加一个约束来限制它的长度?我希望这些数组不超过 6 个。是的,我知道新表通常比存储在数组中更好,但我的情况是数组更有意义。
【问题讨论】:
标签: arrays database postgresql database-design relational-database
您可以在表定义中添加CHECK 约束:
CREATE TABLE my_table (
id serial PRIMARY KEY,
arr int[] CHECK (array_length(arr, 1) < 7),
...
);
如果表已经存在,可以用ALTER TABLE添加约束:
ALTER TABLE my_table ADD CONSTRAINT arr_len CHECK (array_length(arr, 1) < 7);
【讨论】:
cardinality(arr) 代替