Пытаюсь разобраться в особенностях работы ключей. В документации написано, что KEY = INDEX, а PRIMARY KEY - другой тип ключа. В различиях вроде разобрался.
Но есть код:
$db = mysqli_connect('localhost', 'root', '');
mysqli_query($db, 'CREATE DATABASE IF NOT EXISTS publications;');
mysqli_query($db, 'USE publications;');
//пытаюсь создать поле с обычным неуникальным ИНДЕКСОМ, НЕ первичным ключом:
$res = mysqli_query($db, 'CREATE TABLE IF NOT EXISTS classics1 (author CHAR(12) KEY)');
//вывожу индексы таблицы:
$res = mysqli_query($db, 'SHOW INDEX IN classics1');
Почему поле author содержит первичный ключ? Я же не написал в запросе что-то такое (очевидное создание первичного ключа):
$res = mysqli_query($db, 'CREATE TABLE IF NOT EXISTS classics1 (author INT PRIMARY KEY)');
К слову, если в запросе добавить строку:
mysqli_query($db, 'ALTER TABLE classics1 ADD KEY(author)');
...то добавится обычный индекс. Почему же в CREATE TABLE() KEY становится PRIMARY KEY?