oracle中的多个唯一键不起作用?

时间:2017-06-22 08:03:15

标签: oracle

我有多个唯一密钥,我希望数据库中没有重复但是在实现后生成重复 我唯一的密钥是TELEPHONE,EMAIL和CODE。

代码由SQL Devloper生成。

CREATE TABLE CUSTOMERMASTER 
(
  NAME VARCHAR2(20 BYTE) NOT NULL 
, CODE NUMBER NOT NULL 
, ADDRESS VARCHAR2(50 BYTE) 
, TELEPHONE NUMBER 
, EMAIL VARCHAR2(20 BYTE) 
) 
LOGGING 
TABLESPACE SYSTEM 
PCTFREE 10 
PCTUSED 40 
INITRANS 1 
STORAGE 
( 
  INITIAL 65536 
  NEXT 1048576 
  MINEXTENTS 1 
  MAXEXTENTS UNLIMITED 
  FREELISTS 1 
  FREELIST GROUPS 1 
  BUFFER_POOL DEFAULT 
) 
NOPARALLEL;

ALTER TABLE CUSTOMERMASTER
ADD CONSTRAINT CUSTOMERMASTER_UK1 UNIQUE 
(
  TELEPHONE 
, EMAIL 
, CODE 
)
DISABLE;

1 个答案:

答案 0 :(得分:3)

如果您需要唯一的电子邮件,唯一电话和唯一代码,则代码为:

ALTER TABLE CUSTOMERMASTER
ADD CONSTRAINT CUSTOMERMASTER_UK_TEL UNIQUE 
(
  TELEPHONE 
)
;

ALTER TABLE CUSTOMERMASTER
ADD CONSTRAINT CUSTOMERMASTER_UK_EMAIL UNIQUE 
(
EMAIL 
)
;

ALTER TABLE CUSTOMERMASTER
ADD CONSTRAINT CUSTOMERMASTER_UK_CODE UNIQUE 
(
CODE 
)
;

如果您想要将电话,电子邮件和代码结合在一起,那么约束就可以了,您只需将其启用即可。