【问题标题】:How to limit the length of an array in PostgreSQL?如何限制 PostgreSQL 中数组的长度?
【发布时间】:2017-01-22 23:18:57
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 从 9.4 开始你也可以使用 cardinality(arr) 代替
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    相关资源
    最近更新 更多