怎么将将其他字段(比如两者组合或者添加一个新的唯一字段)作为复合主键。
时间: 2024-10-23 12:08:57 浏览: 15
将多个字段组合成复合主键通常是为了确保数据的唯一性,当单个字段不足以区分所有记录时。在SQL中,你可以这样做:
1. **组合现有字段为主键**:
如果你想结合`STUDENT_NO`和`COURSE_NO`作为联合主键,你可以修改`CREATE TABLE`语句,例如:
```sql
CREATE TABLE score (
STUDENT_NO VARCHAR2(8) NOT NULL,
COURSE_NO VARCHAR2(3) NOT NULL,
SCORE NUMBER(5, 1) CHECK (SCORE BETWEEN 0 AND 100),
CONSTRAINT PK_score UNIQUE (STUDENT_NO, COURSE_NO)
);
```
这里通过`UNIQUE`约束确保`STUDENT_NO`和`COURSE_NO`的组合在整个表中是唯一的。
2. **添加新的唯一字段**:
如果想添加一个新的字段作为单独的主键,首先确定是否有合适的候选字段,然后创建新的列,例如:
```sql
ALTER TABLE score ADD COLUMN ROW_ID SERIAL PRIMARY KEY;
```
对于Oracle数据库,这里假设`SERIAL`关键字会自动生成一个递增的整数。如果使用的是其他数据库系统,如MySQL,可能会使用`AUTO_INCREMENT`或者其他生成唯一ID的方法。
记住,在更改表结构之前,确保这样的改变不会影响现有的数据完整性,同时也要考虑到查询性能的影响,因为复合主键可能会降低某些操作的速度。
阅读全文