[英]ALTER table query in Postgres
我试图将表中一列的数据类型从biginteger更改为varchar。
myproject-# \d+ product_awbstock
Table "public.product_awbstock"
Column | Type | Modifiers | Storage | Description
-------------------+--------------------------+-----------+---------+-------------
airwaybill_number | bigint | not null | plain |
used | boolean | not null | plain |
created | timestamp with time zone | not null | plain |
modified | timestamp with time zone | not null | plain |
Indexes:
"product_awbstock_pkey" PRIMARY KEY, btree (airwaybill_number)
"product_awbstock_used" btree (used)
我正在使用此查询,也给出了错误。
alter table product_awbstock ALTER COLUMN airwaybill_number TYPE varchar(15);
错误:外键约束“ awbstock_id_refs_airwaybill_number_d438187b”无法实现
详细信息:关键列“ awbstock_id”和“ airwaybill_number”具有不兼容的类型:bigint和字符变化。
你应该:
ALTER TABLE product_awbstock DROP CONSTRAINT product_awbstock_pkey;
ALTER TABLE ??? DROP CONSTRAINT awbstock_id_refs_airwaybill_number_d438187b;
ALTER TABLE product_awbstock ALTER COLUMN airwaybill_number TYPE varchar(15);
ALTER TABLE ??? ALTER COLUMN airwaybill_id TYPE varchar(15);
ALTER TABLE product_awbstock ADD CONSTRAINT product_awbstock_pkey PRIMARY KEY (airwaybill_number);
ALTER TABLE ??? ADD CONSTRAINT awbstock_id_refs_airwaybill_number_d438187b FOREIGN KEY (awbstock_id) REFERENCES product_awbstock (airwaybill_number);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.