【问题标题】:postgresql partition check on hstore field对 hstore 字段的 postgresql 分区检查
【发布时间】:2013-06-22 00:41:33
【问题描述】:

我有一个正在分区的主表。一切都很好,除了其中一个字段是 hstore 类型,我希望分区创建时的 CHECK 检查该 hstore 键的值:

CREATE TABLE master_table 
( 
  id SERIAL, 
  created_at TIMESTAMP WITH TIME ZONE NOT NULL, 
  updated_at TIMESTAMP WITH TIME ZONE NOT NULL, 
  data HSTORE DEFAULT hstore(array[]::varchar[])
);

对于分区:

CREATE TABLE partition_field1 
(
  CHECK data->'field' = 1 
) INHERITS ( master_table );

但是,我收到以下错误:

ERROR:  syntax error at or near "data"
LINE 1: CREATE TABLE partition_field1 ( CHECK data->'field...
                                              ^

这可能吗?还是我必须适当地指定 hstore 密钥?

【问题讨论】:

    标签: postgresql database-partitioning hstore


    【解决方案1】:

    您忘记了 CHECK 约束上的括号。我会使用完整的CONSTRAINT 语法:

    CREATE TABLE partition_field1 
    (
      CONSTRAINT data_field_equals_1 CHECK (data->'field' = 1)
    ) INHERITS ( master_table );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 2021-07-12
      • 1970-01-01
      相关资源
      最近更新 更多