Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 17:02   #1
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию Проблема с AUTO_INCREMENT для поля составного первичного ключа

Пытаюсь создать таблицу, в точности такую же, как описано в примере учебника:

Код:
CREATE TABLE `album`(
  `artist_id` INT(5) NOT NULL,
  `album_id` INT(4) NOT NULL AUTO_INCREMENT,
  `album_name` CHAR(128) DEFAULT NULL,
  PRIMARY KEY(`artist_id`, `album_id`)
);
Сервер выдает ошибку:
Цитата:
Incorrect table definition; there can be only one auto column and it must be defined as a key
Смысл таков, что ID исполнителя и ID альбома - это составной первичный ключ. AUTO_INCREMENT должен работать для поля `album_id` таким образом, чтобы при добавлении записей:

INSERT INTO `album` VALUES(1, NULL, "Album1")

Было добавлено: 1 | 1 | Album1

INSERT INTO `album` VALUES(1, NULL, "Album2")

Было добавлено: 1 | 2 | Album1

INSERT INTO `album` VALUES(2, NULL, "Album1")

Было добавлено: 2 | 1 | Album1

Что я делаю не так?
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 28.06.2012, 17:04   #2
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Пробовал задать PRIMARY KEY таким образом:
Код:
PRIMARY KEY(`album_id`, `artist_id`)
т.е поменять столбцы местам, тогда ошибка не выводится, таблица успешно создается, но эффект, естественно не тот, что мне нужен:

в этом случае значение поля `album_id` увеличивается не зависимо от поля `artist_id`.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 28.06.2012, 17:26   #3
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Проблема решена.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка первичного ключа в Delphi NastyaPoison Помощь студентам 1 20.10.2011 21:37
Возврат первичного ключа tokloo PHP 11 12.08.2011 22:12
Delphi считывание значения первичного ключа world12_tk Помощь студентам 10 22.03.2011 09:23
вывод первичного ключа ZBoris SQL, базы данных 3 09.02.2009 17:38