![]() |
|
Модераторы: skyboy |
![]()
|
|
| Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Здравствуйте, нужна помощь:
В базе Images есть таблицы Image(image_id, ...), User(user_id, ....), user_image(image_id, user_id) - ну понятно, есть пользователи, изображения и взаимосвязь - много-много. Так как же мне в уже существующей таблице user_login сделать оба поля image_id, user_id внешними ключами, чтоб ссылались на соответствующие поля таблиц Image и User. Это мне надо для каскадного удаления, да и вообще... Я пытался делать такой запрос:
но возникает какая-то невероятная ошибка "1005 Can't create table './Images/#sql-96f_28frm' (errno: 150)". |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
уточняй версию.
на самом деле - ничего невероятного: сначала создается frm c новым описанием структуры таблицы, а только потом - заменяется существующий. соответственно, это просто не информативное сообщение об ошибке. проблема может быть как с новой структурой, так и с файловой системой(нехватка места, прав и т.д.) вообще говоря, варианты есть разные Добавлено @ 14:40 на forum.mysql.com в обсуждении подобной проблемы напоминают следующие нюансы:
|
|||
|
||||
| Avaj |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Да, действительно много вариантов возникновения ошибки.
Правильно ли я понимаю эти 5 пунктов?
1) а первичным ключом не может быть? 3) Кодировка должна быть у обеих таблиц одинаковой или у обоих столбцов. И вот ещё нашёл тут :
"определение внешнего ключа для преобразовываемой таблицы сформировано неправильно" - а правильно это по тем 5 пунктам? И можно ли ещё как-то сделать внешний ключ и каскадное удаление? Это сообщение отредактировал(а) Avaj - 9.3.2010, 16:27 |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
да, и кодировка(charset), и сравнение(collation) может, приведешь create table обоих таблиц? к слову, наверное, лучше уж апеллировать к ману с его "Foreign key contraints". там список ограничений побольше. например, упущенное в блоке выше "обе таблицы должны быть innoDB и не быть временными(temporary)" |
|||
|
||||
| Avaj |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Тут пользователи user и отношение к изображениям user_image . Странно это :
|
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |