Oracle唯一约束和主键不为null

Dav*_*cia 3 oracle constraints

表可以具有主键属性和对另一个属性的唯一约束吗?

我有以下内容

CREATE TABLE BRANCH(
BRA_CODE NUMBER NOT NULL PRIMARY KEY,
BRA_NAME VARCHAR(15),
BRA_ADDR VARCHAR(30),
 CITY_ID NUMBER);
Run Code Online (Sandbox Code Playgroud)

我试图添加

ALTER TABLE BRANCH ADD CONSTRAINT UNIQUE_BRANCH_NAME UNIQUE (BRA_NAME);
Run Code Online (Sandbox Code Playgroud)

我得到以下错误;

ERROR at line 1:
ORA-02261: such unique or primary key already exists in the table
Run Code Online (Sandbox Code Playgroud)

pau*_*sm4 7

问:表可以有主键属性和对另一个属性的唯一约束吗?

答:是的:

  • 一张表只能有一个主键。

  • 主键可以由多列组成(“复合主键”)

  • 任何列都可能有“唯一约束”,无论它是否是主键列

  • 主键始终是“唯一”的,并且始终具有“唯一”约束

第 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
Run Code Online (Sandbox Code Playgroud)


Gol*_*rol 5

除主键外,您可以拥有唯一的约束,但该消息表明您已添加此类约束.