私はMySQLで作成したい基本的な 'users'テーブルを持っています。UNIQUE、UNIQUE KEYとCONSTRAINT 'name' UNIQUEの違いは何ですか?
データベースに重複したメールや重複したユーザー名が表示されることはありません。
- テーブル作成時にこれを防ぐ最良の方法は何ですか。
- そして、何次の違いがある:
1. UNIQUE(ユーザー名)、 UNIQUE(電子メール)、
2. UNIQUE KEY(ユーザー名)、 ユニークキー(電子メール)、
CONSTRAINT ucons _login UNIQUE(username、email)、
私はこれらのいくつかは同義語だと思いますが、私は矛盾する情報をオンラインで読んでおり、確認を求めていました。
誰かが助けてくれることを願っています。
SQL:
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
pass CHAR(40) NOT NULL,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
registration_date DATETIME NOT NULL,
user_level TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
active CHAR(32),
PRIMARY KEY (user_id),
UNIQUE (username),
UNIQUE (email),
INDEX login (email, pass),
INDEX full_name (last_name, first_name)
) ENGINE=INNODB;
ps:電子メールのインデックスでは、おそらく単に物事が遅くなるだけです。電子メールのユニーク制約は、通常のインデックスとしても機能します。電子メールでの選択では、最大で1行しか返されないため、パス上にインデックスを作成する必要はありません。 –