Подтвердить что ты не робот

Определение PRIMARY KEY в MySQL CREATE TABLE

Какая разница между этим кодом:

CREATE TABLE samples (
  sampleid INT(11) NOT NULL AUTO_INCREMENT,
  sampledate DATE NOT NULL,
  location VARCHAR(25) NOT NULL,
  PRIMARY KEY (sampleid)
)
ENGINE=InnoDB;

и это:

CREATE TABLE samples (
  sampleid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  sampledate DATE NOT NULL,
  location VARCHAR(25) NOT NULL,
)
ENGINE=InnoDB;

код

Итак, отдельный оператор PRIMARY KEY или как часть определения столбца. Тот же вопрос для определения UNIQUE INDEX и UNIQUE в определении столбцов.

4b9b3361

Ответ 1

Второй синтаксис - это просто ярлык, позволяющий указать столбец и добавить в него индекс в одном предложении.

Это отлично работает в тех случаях, когда вы просто хотите создать столбец и добавить на него индекс.

Вам нужно будет использовать первый синтаксис, если вы хотите сделать что-то более сложное, например добавление индекса на основе нескольких столбцов, а не одного столбца, или если вы добавляете или изменяете индекс в существующем столбце; то есть вы не создаете столбец и индекс на нем одновременно.

Ответ 2

MySQL позволяет использовать директиву PRIMARY KEY, чтобы вы могли динамически устанавливать первичный ключ. Поставка PRIMARY KEY в качестве аргумента для конструктора может быть вызвана только при создании столбца. ПЕРВИЧНЫЙ КЛЮЧ (X), ПЕРВИЧНЫЙ КЛЮЧ (Y), ПЕРВИЧНЫЙ КЛЮЧ (Z) позволяет изменять первичные ключи при последующих запросах.

Ответ 3

То, что я вижу, это... Первый метод используется для создания составных клавиш. Хотя второй метод (более читаемый для меня) в основном используется, если в таблице есть только первичный ключ.

Второй метод нельзя использовать, если вы хотите реализовать составной ключ

Ответ 4

Есть много способов скинуть кошку, и более двух примеров - всего лишь 2 из них. Они идентичны. Нет никакой разницы.