PostgreSQL 添加各种约束语法

190 阅读1分钟

约束的含义:

数据类型是一种限制能够储存在表中数据类别的方法。但是产品的价格的列只能接受正值,但是没有任何一种标准的数据类型只接受正值。或是我们可能需要根据其他列或行来约束一个列中的数据。

  1. 添加主键
alter table goods add primary key(sid);
  1. 添加外键

    alter table orders add foreign key(goods_id) references goods(sid)  on update cascade on delete cascade;

    on update cascade: 被引用行更新时,引用行自动更新;

    on update restrict: 被引用的行禁止更新;

    on delete cascade: 被引用行删除时,引用行也一起删除;

    on dellete restrict: 被引用的行禁止删除;

ALTER TABLE public.sys_user_ex ADD CONSTRAINT sys_user_pkey PRIMARY KEY (id);

  1. 删除外键
ALTER TABLE public.sys_user_ex DROP CONSTRAINT sys_user_pkey;
  1. 添加唯一约束
alter table goods add constraint unique_goods_sid unique(sid);
  1. 删除默认值
alter table goods alter column sid drop default;
  1. 修改字段的数据类型
alter table goods alter column sid type character varying;
  1. 重命名字段
alter table goods rename column sid to ssid;

问题

alter table <表名> add constraint <主键名> primary key(<列名>) 主键名和列名是同一个吗

不是相同的,主键名是指主键的名字,列名是指主键包含的列。
如alter table table1 add constraint pk_table1 primary key clustered(id)

创建索引:

索引:
CREATE UNIQUE INDEX suser_name_betree_idx
    ON public.sys_user_ex USING btree
    (username COLLATE pg_catalog."default")
TABLESPACE pg_default;