如果表已存在,给出给表设置主键、外键、默认值、check约束的ALTER语句?(可举例说明)
时间: 2023-06-25 20:05:08 浏览: 48
假设我们有一个名为`students`的表,包含以下字段:
- `id`:学生ID,整数类型
- `name`:学生姓名,字符串类型
- `age`:学生年龄,整数类型
- `gender`:学生性别,字符串类型
- `class_id`:班级ID,整数类型
为了设置主键、外键、默认值、check约束,我们可以使用以下ALTER语句:
1. 设置主键
```
ALTER TABLE students ADD CONSTRAINT pk_students_id PRIMARY KEY (id);
```
这将把`id`字段设置为主键。
2. 设置外键
假设我们有一个名为`classes`的表,包含以下字段:
- `id`:班级ID,整数类型
- `name`:班级名称,字符串类型
我们可以将`students`表中的`class_id`字段设置为外键,参考`classes`表中的`id`字段:
```
ALTER TABLE students ADD CONSTRAINT fk_students_classes FOREIGN KEY (class_id) REFERENCES classes(id);
```
这将把`class_id`字段设置为外键,并指定它参考`classes`表中的`id`字段。
3. 设置默认值
假设我们希望`students`表中的`gender`字段默认值为`unknown`:
```
ALTER TABLE students ALTER COLUMN gender SET DEFAULT 'unknown';
```
这将把`gender`字段的默认值设置为`unknown`。
4. 设置check约束
假设我们希望`students`表中的`age`字段必须大于等于18:
```
ALTER TABLE students ADD CONSTRAINT chk_students_age CHECK (age >= 18);
```
这将给`students`表的`age`字段设置一个check约束,要求它必须大于等于18。