Rah*_*llo 4 sql database postgresql
我product_details在PostgreSQL数据库中有一个表,该表的两列是bill_no INT和purchase_date DATE。
当前bill_no是主键,但是我的客户希望将其更改为bill_no购买年份,因为账单号在每年年初以1开头。
有没有办法来改变表的主键bill_no,只有一年的一部分的purchase_date?
您可以删除主键,例如:
alter table bill drop constraint bill_pkey;
Run Code Online (Sandbox Code Playgroud)
如果密钥的名称不是“ bill_pkey”,请使用\d查找其名称。
您可以添加一个新的主键,例如:
alter table bill add constraint bill_pkey primary key (bill_no, purchase_date);
Run Code Online (Sandbox Code Playgroud)
但是,您只需要年份部分的关键。Postgres不支持该功能,但是您可以使用唯一索引:
create unique index ux_bill on bill (bill_no, extract(year from purchase_date));
Run Code Online (Sandbox Code Playgroud)
唯一索引将完成主键所做的所有事情,但不会具有主键标签。
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |