Oracle中如何定义多主键?

[复制链接]
查看11 | 回复3 | 2010-3-29 14:52:20 | 显示全部楼层 |阅读模式
你说的是单一主键和联合主键的问题,一个表只能有一个主键:基于一列的主键:alter table test add constraint PK_TEST primary key(ename); 基于多列的联合主键: alter table test add constraint PK_TEST primary key(ename,birthday);
回复

使用道具 举报

千问 | 2010-3-29 14:52:20 | 显示全部楼层
第一个问题:一个表只能有一个主键第二个问题:你可以不用设置主键,设置唯一索引啊,只要将 姓名+出生日期 设置为唯一索引,这样在你新增记录的时候一样可以实现:如果 姓名+出生日期报错。。。。即实现主键的功能啊具体语法如下:CREATE UNIQUE INDEX 索引名称 ON 表名(姓名, 出生日期)这个方法一定OK
回复

使用道具 举报

千问 | 2010-3-29 14:52:20 | 显示全部楼层
1、这种情况可以随便设置哪个字段为主键,另外一个字段建个唯一索引就可以了,而不能把2个字段都设置为主键,比如:alter table 表名 add constraint PK_1 primary key (身份证号字段) using index;--建主键create unique index IDX_1 on 表名 (员工号字段);--建唯一索引这样,创建的表里的身份证号 和 员工号,都不可能重复,避免垃圾数据2、这种就只能把2个字段都设置为主键了,如:alter table 表名 add constraint PK_2 primary key (姓名字段, 出生日期字段) using index
回复

使用道具 举报

千问 | 2010-3-29 14:52:20 | 显示全部楼层
1 . create table abc(id number primary key,name varchar2(20)....)2. crete table abc (name varchar2(20),birth date, .....)alter table abc add primary key (name,birth);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行