[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: KEY и PRIMARY KEY в CREATE TABLE
Boolean_Type
Здравствуйте!
Пытаюсь разобраться в особенностях работы ключей. В документации написано, что 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?
bestxp
при создании просто INDEX вместо KEY попробуй, скорее всего какие то особенности
Boolean_Type
Цитата (bestxp @ 7.07.2014 - 16:52)
при создании просто INDEX вместо KEY попробуй, скорее всего какие то особенности

Пробовал, не прокатило:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INDEX)' at line 1"
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.