表可以具有主键属性和对另一个属性的唯一约束吗?
我有以下
CREATE TABLE BRANCH(
BRA_CODE NUMBER NOT NULL PRIMARY KEY,
BRA_NAME VARCHAR(15),
BRA_ADDR VARCHAR(30),
CITY_ID NUMBER);
我试图添加
ALTER TABLE BRANCH ADD CONSTRAINT UNIQUE_BRANCH_NAME UNIQUE (BRA_NAME);
我收到以下错误;
ERROR at line 1:
ORA-02261: such unique or primary key already exists in the table
答案 0 :(得分:5)
除主键外,您可以拥有唯一约束,但该消息表明您已添加此类约束。
答案 1 :(得分:4)
问:表可以具有主键属性和唯一约束 另一个属性?
答:是的:
一个表只能有一个主键。
主键可能包含多个列(“复合主键”)
任何列都可能具有“唯一约束”,无论它是否为主键列
主键始终是“唯一”,并始终具有“唯一”约束
第1行的错误:ORA-02261:此类唯一或主键已存在 在表格中
答:检查您的架构。您已经拥有主键,并且/或者您已经定义了相同的唯一约束。
例如:
http://www.shutdownabort.com/dbaqueries/Structure_Constraints.php
col type format a10
col cons_name format a30
select decode(constraint_type,
'C', 'Check',
'O', 'R/O View',
'P', 'Primary',
'R', 'Foreign',
'U', 'Unique',
'V', 'Check view') type
, constraint_name cons_name
, status
, last_change
from dba_constraints
where table_name like 'BRANCH'
order by 1