powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешний ключ на UNIQUE-поле
6 сообщений из 6, страница 1 из 1
Внешний ключ на UNIQUE-поле
    #38851669
NewEXE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Проблема, скорее всего, с указанием внешнего ключа на уникальное поле, не первичный ключ.
Есть 2 таблицы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
--
-- Структура таблицы `users`. Создается, все нормально
--

CREATE TABLE IF NOT EXISTS `users` (
  `id_user` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(16) DEFAULT NULL,
  `password` int(32) DEFAULT NULL,
  `user_email` varchar(32) DEFAULT NULL,
  `image` mediumblob,
  PRIMARY KEY (`id_user`),
  UNIQUE KEY `image` (`image`(255)) --проходит, все нормально создается
)

--
-- Структура таблицы `comments`. Эта не создается
--

CREATE TABLE IF NOT EXISTS `comments` (
  `id_comment` int(11) NOT NULL AUTO_INCREMENT,
  `comment` text DEFAULT NULL,
  `image` mediumblob,
  `email_id` int(11),
  PRIMARY KEY (`id_comment`),
  FOREIGN KEY (`image`(255)) REFERENCE users(`image`), -- указывает не на foreign, а на unique
  FOREIGN KEY (`email_id`) REFERENCE emails(`id_email`)
)



У одного пользователя одно изображение, у изображения много комментариев. Есть еще таблица emails, но это отдельная история, вся предметная область, если интересно, описана в приложенном файле.
#1005 - Can't create table 'general_db.comments' (errno: 150)
...
Рейтинг: 0 / 0
Внешний ключ на UNIQUE-поле
    #38851671
NewEXE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. опечатку "ima h es" я учёл.
...
Рейтинг: 0 / 0
Внешний ключ на UNIQUE-поле
    #38851676
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html Index prefixes on foreign key columns are not supported. One consequence of this is that BLOB and TEXT columns cannot be included in a foreign key because indexes on those columns must always include a prefix length.
...
Рейтинг: 0 / 0
Внешний ключ на UNIQUE-поле
    #38851679
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewEXEУ одного пользователя одно изображение, у изображения много комментариев.Ну так пусть комментарии и ссылаются на пользователя. Зачем BLOB-ы-то множить?
...
Рейтинг: 0 / 0
Внешний ключ на UNIQUE-поле
    #38851681
NewEXE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

то есть, никак нельзя сослаться форейном на blob?
Вы предлагаете comments.image убрать, и связать id_comment с таблицей users связью один юзер - много комментов?
...
Рейтинг: 0 / 0
Внешний ключ на UNIQUE-поле
    #38851682
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewEXEто есть, никак нельзя сослаться форейном на blob?Нет, нельзя. Более того, не представляю зачем это было бы нужно.

NewEXEВы предлагаете comments.image убрать, и связать id_comment с таблицей users связью один юзер - много комментов?Да.
Ежели когда-нибудь случится, что у одного пользователя будет несколько изображений, то выделите их в отдельную таблицу и из других ссылайтесь на ID_изображения.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Внешний ключ на UNIQUE-поле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]