我有一個基本的「用戶」表,我想在MySQL中創建。UNIQUE,UNIQUE KEY和CONSTRAINT'name'UNIQUE之間有什麼區別?
我不想重複的電子郵件或重複出現在數據庫中的用戶名。
- 防止創建表格的最佳方法是什麼?
- 而這也正是以下區別:
UNIQUE(用戶名), UNIQUE(電子郵件),
2. UNIQUE KEY(用戶名), UNIQUE KEY(email),
3. CONSTRAINT ucons _login UNIQUE(用戶名,電子郵件),
我認爲有些是同義的,但我一直在讀在線矛盾的信息,並尋求確認。
我希望有人能幫助。
的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行,因此無需通過索引。 – 2012-02-08 21:38:33