Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внешние ключи, Ошибка при связывании внешних ключей 
:(
    Опции темы
4итер
Дата 29.3.2013, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



При попытки связать внешние ключи с первичными, выскакивает ошибка
Код

Can't create table '.\tablica\svyaz.frm' (errno: 150)


вот код:
Код

create table svyaz (
id1 varchar(10) not null,
id2 varchar(10) not null,
foreign key(id1) references postavki(id1),
foreign key(id2) references postav(id2)) type=InnoDB;


Первичные ключи в предыдущих таблицах id1, id2 обозначил. В чем может быть проблема?
PM MAIL   Вверх
lancelot555
Дата 29.3.2013, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Проверь типы и размеры полей id1 , id2 во всех таблицах
Они должны быть одинаковы

Это сообщение отредактировал(а) lancelot555 - 29.3.2013, 15:33
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
4итер
Дата 29.3.2013, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



lancelot555, вроде везде стоит тип varchar и тип таблицы одинаковый..
PM MAIL   Вверх
Akina
Дата 29.3.2013, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(4итер @  29.3.2013,  16:35 Найти цитируемый пост)
везде стоит тип varchar 

Укажи длину.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
4итер
Дата 29.3.2013, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



Akina, varchar(10) стоит, все равно ошибка
PM MAIL   Вверх
lancelot555
Дата 29.3.2013, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Для ключей вообще лучше INT использовать, наверняка можно без varchar обойтись
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
Akina
Дата 29.3.2013, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Код

mysql> CREATE TABLE parent (id INT NOT NULL,
    -> txt varchar(10),
    -> primary key (id),
    -> unique index (txt)
    -> );
Query OK, 0 rows affected (0.16 sec)

mysql> CREATE TABLE child (id INT, parent_txt varchar(10),
    -> INDEX par_ind (parent_txt),
    -> FOREIGN KEY (parent_txt) REFERENCES parent(txt)
    -> );
Query OK, 0 rows affected (0.25 sec)


Добавлено через 7 минут и 44 секунды
О! А дай-ка я попробую и проявлю телепатические способности!

Цитата(4итер @  29.3.2013,  16:29 Найти цитируемый пост)
Первичные ключи в предыдущих таблицах id1, id2 обозначил.

означает что-то типа
Код

CREATE UNIQUE INDEX id1id2 ON tablename(id1, id2)
? если да - то источник ошибки очевиден.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
4итер
Дата 29.3.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.3.2013

Репутация: нет
Всего: нет



Akina, юмор ваш неуместен. Ошибка была в том, что использовал тип varchar вместо integer. Спасибо за помощь всем)
PM MAIL   Вверх
Akina
Дата 29.3.2013, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(4итер @  29.3.2013,  17:38 Найти цитируемый пост)
Ошибка была в том, что использовал тип varchar вместо integer.

Что за бред? я тебе прямо цитатой с консоли показываю внешние varchar(10) ключи. Прекрасно всё создаётся.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.