云数据库 GAUSSDB-ALTER TABLE:修改约束示例
时间:2025-03-12 13:57:25
修改约束示例
- 为列添加非空约束
--建表。 openGauss=# CREATE TABLE test_alt3(pid INT, areaid CHAR(5), name VARCHAR(20)); --为pid添加非空约束。 openGauss=# ALTER TABLE test_alt3 MODIFY pid NOT NULL; --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | not null areaid | character(5) | name | character varying(20) |
- 取消列的非空约束
openGauss=# ALTER TABLE test_alt3 MODIFY pid NULL; --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | areaid | character(5) | name | character varying(20) |
- 修改字段默认值
--修改test_alt1表中id的默认值。 openGauss=# ALTER TABLE test_alt3 ALTER COLUMN areaid SET DEFAULT '00000'; --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+------------------------- pid | integer | areaid | character(5) | default '00000'::bpchar name | character varying(20) |
--删除id的默认值。 openGauss=# ALTER TABLE test_alt3 ALTER COLUMN areaid DROP DEFAULT; --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | areaid | character(5) | name | character varying(20) |
- 添加表级约束
- 直接添加约束
--给表添加主键约束。 openGauss=# ALTER TABLE test_alt3 ADD CONSTRAINT pk_test3_pid PRIMARY KEY (pid); --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | not null areaid | integer | name | character varying(20) | Indexes: "pk_test3_pid" PRIMARY KEY, btree (pid) TABLESPACE pg_default
- 先创建索引然后再添加约束
--建表 openGauss=# CREATE TABLE test_alt4(c1 INT, c2 INT); --建索引。 openGauss=# CREATE UNIQUE INDEX pk_test4_c1 ON test_alt4(c1); --添加约束时关联已经创建的索引。 openGauss=# ALTER TABLE test_alt4 ADD CONSTRAINT pk_test4_c1 PRIMARY KEY USING INDEX pk_test4_c1; --查看。 openGauss=# \d test_alt4 Table "public.test_alt4" Column | Type | Modifiers --------+---------+----------- c1 | integer | not null c2 | integer | Indexes: "pk_test4_c1" PRIMARY KEY, btree (c1) TABLESPACE pg_default --删除。 openGauss=# DROP TABLE test_alt4;
- 直接添加约束
- 删除表级约束
--删除约束。 openGauss=# ALTER TABLE test_alt3 DROP CONSTRAINT IF EXISTS pk_test3_pid; --查看。 openGauss=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | not null areaid | integer | name | character varying(20) | --删除。 openGauss=# DROP TABLE test_alt3;
support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0338.html