mar*_*are 2 database arrays postgresql database-design relational-database
有什么方法可以在作为数组的列上添加约束以限制其长度?我希望这些数组不超过 6 个。是的,我知道新表通常比存储在数组中更好,但我处于数组更有意义的情况。
您可以CHECK向表定义添加约束:
CREATE TABLE my_table (
id serial PRIMARY KEY,
arr int[] CHECK (array_length(arr, 1) < 7),
...
);
Run Code Online (Sandbox Code Playgroud)
如果表已经存在,您可以添加约束ALTER TABLE:
ALTER TABLE my_table ADD CONSTRAINT arr_len CHECK (array_length(arr, 1) < 7);
Run Code Online (Sandbox Code Playgroud)