如何在PostgreSQL中限制数组的长度?

时间:2016-09-15 03:00:18

标签: arrays database postgresql database-design relational-database

有没有办法在作为数组的列上添加约束来限制它的长度?我希望这些数组不超过6个。是的,我知道通常新表比存储在数组中更好,但我处于一个数组更有意义的情况。

1 个答案:

答案 0 :(得分:4)

您可以在表定义中添加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);