(1)在staffInfo数据库下创建department表和worker表,并完成完整性约束。 (2)删除department表 (3)删除worker表的外键约束 (4)重新删除department表
时间: 2024-10-21 21:15:30 浏览: 28
1. 在`staffInfo`数据库下创建`department`表和`worker`表,同时设置完整性约束:
```sql
CREATE TABLE department (
d_id INT PRIMARY KEY,
d_name VARCHAR(50) NOT NULL,
FOREIGN KEY (d_manager) REFERENCES worker(w_id)
);
CREATE TABLE worker (
w_id INT PRIMARY KEY,
w_name VARCHAR(50) NOT NULL,
w_department_id INT,
FOREIGN KEY (w_department_id) REFERENCES department(d_id),
CHECK (w_wages > 0) -- 验证工资不得为负数
);
```
在这里,我们设置了部门经理字段`d_manager`和工人所属部门字段`w_department_id`为外键,以确保引用关系的有效性。
2. 删除`department`表:
```sql
DROP TABLE department;
```
这将完全删除`department`表及其所有内容。
3. 删除`worker`表的外键约束:
```sql
ALTER TABLE worker DROP FOREIGN KEY w_department_id;
```
这移除了`worker`表对`department`表的外键关联,允许单独删除部门而不影响员工表。
4. 重新删除`department`表(如果之前删除失败需要再次执行):
```sql
DROP TABLE IF EXISTS department; -- 使用IF EXISTS避免错误,因为可能会因其他原因无法删除
```
这个语句会在`department`表不存在的情况下才执行删除操作。
阅读全文