В чем разница между UNIQUE, UNIQUE KEY и CONSTRAINT 'name' UNIQUE?

У меня есть базовая таблица users , которую я хочу создать в MySQL.

Я не хочу, чтобы в базе данных появлялись повторяющиеся электронные письма или повторяющиеся имена пользователей.

  • Как лучше всего предотвратить это при создании таблицы?
  • А чем отличаются следующие:

1. УНИКАЛЬНЫЙ (имя пользователя), УНИКАЛЬНЫЙ (электронная почта),

2. УНИКАЛЬНЫЙ КЛЮЧ (имя пользователя), УНИКАЛЬНЫЙ КЛЮЧ (электронная почта),

3. ОГРАНИЧЕНИЕ 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;
19
задан Yves M. 4 September 2019 в 15:33
поделиться