0

私は次の表を持っています:

CREATE TABLE IF NOT EXISTS `customer_list` (
   `id` INT AUTO_INCREMENT,
   `first_name` char(4) NOT NULL,
   `last_name` varchar(80) NOT NULL,
   `phone` varchar(50) NOT NULL,
   `province` varchar(50) NOT NULL,
   `country` varchar(30) NOT NULL,
   `start_date` TIMESTAMP NOT NULL,
   `end_date` TIMESTAMP NOT NULL,
   PRIMARY KEY (id)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

このテーブルに挿入できるようにしたいのですが、first_name、last_name、phoneを同じにすることはできません。それらが同じである場合、レコードがすでに存在することをエンドユーザーに警告するために何らかのエラーを返したいです-挿入/更新/置換アクションは実行されません。

ここで重要なのは、INSERTステートメントが3つのフィールドの重複を何らかの方法でチェックする必要があることです。エラーは、3つのフィールドすべてが重複している場合にのみ返される必要があります。IE。3つのうち1つまたは2つは重複することができ、それでも入力できます。

これは1つのINSERTステートメントで可能ですか?

4

1 に答える 1

1

試す:

alter table customer_list add unique index(first_name, last_name, phone);
于 2012-03-19T04:00:38.433 に答える