如果在建表時沒有加primary key約束、not null約束、unique約束、default值,而是創建完表之后在某個字段添加的話
1.primary key約束的添加與刪除
給red_packet_refund表id字段添加primary key約束:
alter table red_packet_refund add constraint pk_rpr_id primary key(id);
刪除primary key約束:
alter table red_packet_refund drop constraint pk_rpr_id;
2.not null約束的添加與刪除
給red_packet_customerinfo表bank_name字段添加not null約束:
alter table red_packet_customerinfo alter column bank_name set not null;
刪除bank_name字段上的not null約束:
alter table red_packet_customerinfo alter column bank_name drop not null;
3.unique約束的添加與刪除
給red_packet_pay表payment_acc字段添加unique約束:
create unique index uix_rpp_payment_acc on red_packet_pay(payment_acc);
刪除payment_acc字段上的unique約束:
drop index if exists uix_rpp_payment_acc cascade;
4.default值的添加與刪除
給red_packet_grab表created_date字段添加default值now():
alter table red_packet_grab alter column created_date set default now();
刪除created_date字段的default值:
alter table red_packet_grab alter column created_date drop default;
5.列的新增與刪除
給red_packet_pay表新增error_msg字段
alter table red_packet_pay add error_msg varchar(100);
刪除red_packet_pay表error_msg字段
alter table red_packet_pay drop error_msg;
6.字段數據類型的更改
把red_packet_pay表的amount字段由numeric類型改為varchar類型
alter table red_packet_pay alter amount type varchar(10);
7.字段名字的更改
把red_packet_pay表的amount字段改為premium
alter table red_packet_pay rename amount to premium;
以上sql僅針對postgresql數據庫有效。因為平安用的是postgresql數據庫,故整理下備用。
