在postgresql中我有一个表,我需要添加一个新列 . 原始表ddl正在下面:

CREATE TABLE survey.survey_response (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
survey_id uuid NOT NULL,
survey_question_id uuid NULL,
user_id varchar(256) NULL,
device_id varchar(256) NULL,
user_country varchar(100) NULL,
client_type varchar(100) NULL,
product_version varchar(100) NULL,
answer text NULL,
response_date timestamptz NOT NULL DEFAULT now(),
survey_category varchar(100) NULL,
tags varchar(250) NULL,
tracking_id uuid NULL,
CONSTRAINT survey_response_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
) ;

然后我改变表格来添加一个新列:

alter table survey.survey_response add column system_tags varchar(30) ;

但之后我发现我的instert声明无法更改这个新专栏,因为所有原始列都可以正常工作:

INSERT INTO survey.survey_response
(id, survey_id, user_id,  tags, system_tags)
VALUES(uuid_generate_v4(), uuid_generate_v4(),'1123','dsfsd', 'dsfsd');

select * from survey.survey_response where user_id = '1123';

“tags”列包含插入的值,但system_tags保持为null .

我在我的本地postgreSQL 9.6中测试了上面的场景,有关这种奇怪行为的任何想法?非常感谢

-----------------更新----------

我发现这个survey.survey_response表已根据月份进行分区,因此我的插入记录也将显示在survey.survey_response_y2017m12中 . 但是新的system_tags列也是NULL

CREATE TABLE survey.survey_response_y2017m12 (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
survey_id uuid NOT NULL,
survey_question_id uuid NULL,
user_id varchar(256) NULL,
device_id varchar(256) NULL,
user_country varchar(100) NULL,
client_type varchar(100) NULL,
product_version varchar(100) NULL,
answer text NULL,
response_date timestamptz NOT NULL DEFAULT now(),
survey_category varchar(100) NULL,
tags varchar(250) NULL,
tracking_id uuid NULL,
system_tags varchar(30) NULL,
CONSTRAINT survey_response_y2017m12_response_date_check CHECK (((response_date >= '2017-12-01'::date) AND (response_date < '2018-01-01'::date)))
)
INHERITS (survey.survey_response)
WITH (
OIDS=FALSE

);

如果我在非分区表中运行相同的方案,那么插入工作正常 .

那么我需要对分区表的alter table进行任何特殊设置吗?