2012-11-30 35 views
0

我不擅长sql。我只是想和你解决我的疑惑。我可以给单列分配两个约束吗?我可以将唯一约束和非空约束设置为SQL中的同一列吗?

e.g

 eno ename address mobileno 
     1 A  US  9089877878 
     2 B  UK  NULL 
     3 C  IND  9089877878 

考虑上面的例子,我不想让用户为mobileno栏输入NULL或相同的值。我如何限制用户这样做?

感谢您的重要时间。

+3

是的,这是可能的。尝试一下。 – 2012-11-30 05:20:04

回答

3

CREATE TABLE table_name (column_name type NOT NULL, UNIQUE (column_name))

+1

错过了一个括号? – Greg

+0

谢谢Zander和Greg :) – Vicky

+0

:)接受它然后 – venkatKA

0

或者您可以使用太多这种方式,

CREATE TABLE Persons 
(
Id int NOT NULL UNIQUE, 
0

一种解决方案是有两个数据不能复制以及数据不能为空。 可以使用此列作为主键。

CREATE TABLE table_name(eno NUMBER(3),ename CHAR(1),address CHAR(3),mobile_no NUMBER(10) PRIMARY KEY(mobile_no));

在Oracle中,我们可以将一个以上的主键是知道的,你的情况组合键,可以按以下方式:

CREATE TABLE table_name(eno NUMBER(3),ename CHAR(1),address CHAR(3),mobile_no NUMBER(10) PRIMARY KEY(eno,mobile_no));

0

是的,你可以

CREATE TABLE TABLE_NAME 
(eno NUMBER 
    ,ename VARCHAR2(100) 
    ,address VARCHAR2(2000) 
    ,mobileno NUMBER NOT NULL 
    ,constraint table_name_mobile_UK UNIQUE (mobileno) 
);