FOREIGN KEY - MySQL (220365)
Формулировка задачи:
Здравствуйте. Нужно что бы fileref в таблице distribute был привязан к ref в таблице files. Чет не получается. Впервые пытаюсь сделать привязку. Что делаю не так? Ничего что у них текстовый тип?
CREATE DATABASE family; USE family; CREATE TABLE `files` ( `name` text, `ref` text, PRIMARY KEY(REF), FOREIGN KEY (fileref) REFERENCES distribute(fileref); ); CREATE TABLE `distribute` ( fileref text FOREIGN KEY REFERENCES files(REF), task text, member text, STATUS INT );
Решение задачи: «FOREIGN KEY»
textual
Листинг программы
CREATE DATABASE family; USE family; CREATE TABLE `files` ( `ref` text, `name` text, PRIMARY KEY (`ref`(200)) ); CREATE TABLE `distribute` ( `fileref` text REFERENCES `files` (`ref`), `task` text, `member` text, `status` INT ); CREATE TABLE `users` ( `login` text, `password` text, `category` text );
Объяснение кода листинга программы
- Создание базы данных
family. - Выбор базы данных
family. - Создание таблицы
filesс полямиrefиname. - Установка первичного ключа для таблицы
filesс использованием поляrefи ограничением длины в 200 символов. - Создание таблицы
distributeс полямиfileref,task,memberиstatus. - Установка внешнего ключа для поля
filerefв таблицеdistribute, который ссылается на полеrefв таблицеfiles. - Создание таблицы
usersс полямиlogin,passwordиcategory.