postgresql數據庫primary key約束/not null約束/unique約束及default值的添加與刪除、列的新增/刪除/重命名/數據類型的更改


如果在建表時沒有加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數據庫,故整理下備用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM