Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48

FOREIGN KEY

14.05.2011, 14:02. Показов 3955. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, возникла проблема: не получается задать длину ключа при создании внешнего ключа.
Есть две таблицы : t1, t2.
В t1 имеется поле f1 text(20) primary key
В t2 имеется поле d2 text(10)
Задача - создать foreign key t2.d2 - t1.f1

Запрос вида:

alter table t2 add foreign key (d2) references t1(f1) on delete cascade on update cascade;

не работает, выдает ошибку, что нужно в спецификации ключа для полей типа BLOB\TEXT указывать длину.

Добавляю указание длины ключа:

alter table t2 add foreign key (d2(10)) references t1(f1) on delete cascade on update cascade;

Ошибка 1005 (НY000) не могу создать таблицу имя_БД.#sql-778_3 (Номер ошибки 150)

Кто-нибудь может растолковать в чем проблема и как ее устранить?

Буду признателен за помощь, диплом горит
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.05.2011, 14:02
Ответы с готовыми решениями:

Зачем нужны primary key и foreign key?
Пожалуйста, объясните самым простым языком зачем эти ключи нужны? Какова их функция? Как они работают? В чём приемущество?

Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
У меня получается добавить одним запросом один и тот же UUID в две таблицы. Как одной строкой запроса добавить один и тот же...

FOREIGN KEY
Здравствуйте. Нужно что бы fileref в таблице distribute был привязан к ref в таблице files. Чет не получается. Впервые пытаюсь сделать...

9
24 / 23 / 9
Регистрация: 25.05.2010
Сообщений: 117
17.05.2011, 11:34
Можно немного подробнее, может проблема в проекте бд. Почему первичный ключ должен иметь тип TEXT? Может надо чтобы они имели одинаковую длину?
0
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
17.05.2011, 15:45  [ТС]
даже при одинаковой длине ключа связь не создается. мне нужна возможность связи текстовых полей ибо заводские номера не всегда цифровые
0
24 / 23 / 9
Регистрация: 25.05.2010
Сообщений: 117
17.05.2011, 15:51
попробуй char(20)
0
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
23.05.2011, 23:25  [ТС]
DennisRU, то же самое
0
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 12
31.05.2011, 11:39
Попробуй
Тип CHARACTER VARYING
0
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
31.05.2011, 20:56  [ТС]
Все так же
0
74 / 73 / 25
Регистрация: 05.10.2008
Сообщений: 233
01.06.2011, 14:51
используйте char или varchar

SQL
1
2
3
CREATE TABLE t1( f1 VARCHAR(20) NOT NULL, PRIMARY KEY(f1) )engine=InnoDB;
 
CREATE TABLE t2(id INT NOT NULL AUTO_INCREMENT, d2 VARCHAR(20) NOT NULL, PRIMARY KEY(id), FOREIGN KEY(d2) REFERENCES t1(f1)) engine=InnoDB;
соответственно show create table:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `t1` (
  `f1` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
 
CREATE TABLE `t2` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `d2` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `d2` (`d2`),
  CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`d2`) REFERENCES `t1` (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1
6 / 6 / 3
Регистрация: 05.02.2011
Сообщений: 48
01.06.2011, 21:16  [ТС]
Да, спасибо, все круто, но дело в том, чтобы добавлять ключи уже в существующей таблице :-)
0
74 / 73 / 25
Регистрация: 05.10.2008
Сообщений: 233
02.06.2011, 10:05
давайте структуру существующих таблиц
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2011, 10:05
Помогаю со студенческими работами здесь

FOREIGN KEY и varchar
Всем Привет. Подскажите кто знает, Возможноли делать Внешние ключи (FOREIGN KEY) с полями (varchar) ?. Мне просто по отдельным полям для...

Ошибка с foreign key
Здравствуйте, помогите решить проблему, извиняюсь если такая тема уже была. Ошибка: ERROR 1452 (23000): Cannot add or update a child...

foreign key NULL
Привет всем:) Есть библиотека с городами: city {id, city} Еще одна библиотека с районами этих городов: locality {id, city_id,...

Работа с foreign key
Доброго времени! Пытаюсь найти решение следующего вопроса. Есть 2 таблицы: naim и total. В таблице naim есть поля id, name1, name2. id -...

Foreign Key не создается
из консоли mysql я создала две таблицы : album: --------------------------------------- num int Primary key ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru