Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于';默认值';11之前版本的postgresql分区?_Sql_Postgresql_Database Partitioning - Fatal编程技术网

对于';默认值';11之前版本的postgresql分区?

对于';默认值';11之前版本的postgresql分区?,sql,postgresql,database-partitioning,Sql,Postgresql,Database Partitioning,我们当前的PostgreSQL引擎是10.xx。我需要创建一个“默认”分区来存储与其余任何分区都不匹配的数据。我知道PostgreSQL v11.0支持这种功能。然而,我们还没有决定升级到11。在旧的Postgresql引擎中是否有实现“默认”分区的变通方法 以下面的实现为例。如果传感器ID不是111或时间范围不在指定的时间范围内,则将记录插入表中将失败 CREATE TABLE sensor_readings ( id bigserial NOT NULL, create_da

我们当前的PostgreSQL引擎是10.xx。我需要创建一个“默认”分区来存储与其余任何分区都不匹配的数据。我知道PostgreSQL v11.0支持这种功能。然而,我们还没有决定升级到11。在旧的Postgresql引擎中是否有实现“默认”分区的变通方法

以下面的实现为例。如果传感器ID不是111或时间范围不在指定的时间范围内,则将记录插入表中将失败

CREATE TABLE sensor_readings (
    id bigserial NOT NULL,
    create_date_time timestamp NULL DEFAULT now(),
    value int8 NULL
) PARTITION BY LIST (id);
        
CREATE TABLE sensor_readings_id1 
  PARTITION OF sensor_readings 
  FOR VALUES IN (111) PARTITION BY RANGE(create_date_time);
        
CREATE TABLE sensor_readings_id1_wk1 
  PARTITION OF sensor_readings_id1 
  FOR VALUES FROM (''2020-10-01 00:00:00'') TO (''2020-10-20 00:00:00'');


如果你真的需要它,我认为升级到12(或13)是最好的选择。特别是因为11和12对声明性分区引入了其他实质性的性能改进