1

私はSQLが苦手です。私はあなたとの私の疑問を解決しようとしています。1つの列に2つの制約を割り当てることはできますか?

例えば

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

上記の例を考えてみましょう。ユーザーがmobileno列にNULLまたは同じ値を入力できるようにしたくありません。ユーザーがこれを行うように制限するにはどうすればよいですか?

大切な時間をありがとうございました。

4

4 に答える 4

3

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

于 2012-11-30T05:18:44.813 に答える
0

1つの解決策は、データを複製できないことと、データをnullにすることはできないことの両方にあります。この列を主キーとして使用することができます。

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));

于 2012-11-30T05:36:07.720 に答える
0

または、この方法も使用できます。

CREATE TABLE Persons
(
Id int NOT NULL UNIQUE,
于 2012-11-30T05:27:05.970 に答える
0

はい、できます

CREATE TABLE TABLE_NAME
 ( eno NUMBER
  ,ename VARCHAR2(100)
  ,address VARCHAR2(2000) 
  ,mobileno NUMBER NOT NULL
  ,constraint table_name_mobile_UK UNIQUE (mobileno)
);
于 2012-11-30T05:59:46.607 に答える