Oracle中创建联合主键的方法(oracle创建联合主键)
Oracle数据库采用新的Technology而不是模式定义表,所以创建联合主键需要依赖Oracle数据库constraints机制实现。Oracle中使用constraints来约束表的某些字段,对满足特定条件的表达式实施操作。
要创建一个联合主键,必须在一个SQL语句中定义表字段和constraint,语句如下所示:
CREATE TABLE `employee`
(
`ID` INT UNIQUE NOT NULL,
`Name` VARCHAR(25),
`Phone` VARCHAR(15) NOT NULL,
`Position` VARCHAR(20) NOT NULL,
`Salary` decimal(15,2),
CONSTRAINT `Primarykey` PRIMARY KEY (`ID`,`Phone`,`Position`)
);
上述语句会在employee表上定义三个字段(ID, Phone, Position)作为联合主键,这三个字段组成的联合主键可以用于区分任何一行记录。一个用户只能有一个ID,但可以有多个Position和Phone。通过在ID,Phone和Position上创建联合主键,此表就无法插入任何与它们的组合值重复的行,从而保护数据库免于执行不正确的操作。
另外,如果使用constraints建立联合主键时同时为字段指定了非重复约束(数据库不会重复记录),以及非空约束(字段不能为空),那么这些约束将在联合主键中受到保护,这意味着上述语句中如果用户需要表中ID,Phone和Position字段任何字段值都不能重复,以及联合主键中的任何字段,都不能为空,但可以为其他字段指定非重复和非空约束。
综上,在Oracle中使用constraints机制可以创建联合主键,可以实现主键中任何字段值都不能重复,以及不能为空等约束,有助于保护数据库结构,以确保操作正确。