0

私はDBに4つのフィールドを持っています.iはそれらをカント重複エントリに設定します.それらは次のとおりです。

1. Model     Varchar(14)     Unique
2. Serial    varchar(8)      Unique
3. Lot       varchar(5)      Unique
4. Line      char(5)         Unique


                    Model         Serial             Lot             Line
First data        remocon         x0001              033a            fa 01

同じデータを入力した場合、記録できません。

 remocon         x0001              033a            fa 01

しかし、次のように入力すると、このデータを入力に成功させる方法:

remocon        x0002        033a            fa 01

そして、私は次のような結果が欲しい:

 Model         Serial             Lot             Line
remocon         x0001             033a            fa 01
remocon         x0002             033a            fa 01
4

2 に答える 2

6

各フィールドではなく、すべてのフィールドに一意の制約を追加する必要があります。

UNIQUE(モデル、シリアル、ロット、ライン)

解決:

CREATE TABLE YourTable
(
 Model     Varchar(14)     NOT NULL,
 Serial    varchar(8)      NOT NULL,
 Lot       varchar(5)      NOT NULL,
 Line      char(5)         NOT NULL,
 unique    (model, serial, lot, line) 

)

既存のテーブルの場合:

 alter table YourTableName drop index model;
 alter table YourTableName drop index serial;
 alter table YourTableName drop index lot;
 alter table YourTableName drop index line;
 alter table YourTableName add unique (model, serial, lot, line); 
于 2010-08-11T07:38:32.143 に答える
0

各フィールドに Unique 制約を作成する場合、各フィールドには一意のデータが必要です。繰り返すことができないすべてのフィールドで UNIQUE を作成する必要があります。

UNIQUE(Model, Serial, Lot, Line)

しかし、すべてのフィールドを一意にする必要がある場合、テーブルには主キーがなく、UNIQUE の代わりにすべてのフィールドの PRIMARY KEY を作成する必要があると思います。

于 2010-08-11T08:19:58.950 に答える