Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 17:52   #1
Митовей
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 30
По умолчанию Проблема с заданием внешнего ключа

Удачно зарегистрировав базу данных в SQL Manager Lite for MySQL не удается удачно создать таблицы в ней.
Код:
CREATE TABLE Book
(
	Book_ID  INTEGER NULL,
	Shop_ID  INTEGER NOT NULL,
	Name  VARCHAR(20) NULL,
	Author  VARCHAR(20) NULL,
	ISBN  VARCHAR(20) NULL,
	Cover  VARCHAR(20) NULL,
	Number_Of_Page  VARCHAR(20) NULL
)
;



ALTER TABLE Book
	ADD  PRIMARY KEY (Book_ID,Shop_ID)
;



CREATE TABLE Bookshop
(
	Shop_ID  INTEGER NULL,
	Name  VARCHAR(20) NULL,
	Adress  VARCHAR(20) NULL,
	Telephone  VARCHAR(20) NULL
)
;



ALTER TABLE Bookshop
	ADD  PRIMARY KEY (Shop_ID)
;



ALTER TABLE Book
	ADD FOREIGN KEY (Shop_ID) REFERENCES Bookshop(Shop_ID)
;

CREATE TABLE Busket
(
	Busket_ID  CHAR(18) NULL,
	Number  CHAR(18) NULL
)
;



ALTER TABLE Busket
	ADD  PRIMARY KEY (Busket_ID)
;



CREATE TABLE Buy
(
	Book_ID  INTEGER NOT NULL,
	Shop_ID  INTEGER NOT NULL,
	Buyer_ID  INTEGER NOT NULL,
	Number  VARCHAR(20) NULL
)
;



ALTER TABLE Buy
	ADD  PRIMARY KEY (Book_ID,Shop_ID,Buyer_ID)
;



CREATE TABLE Buyer
(
	Buyer_ID  INTEGER NULL,
	Name  VARCHAR(20) NULL,
	Surname  VARCHAR(20) NULL,
	Login  VARCHAR(20) NULL,
	Telephone  VARCHAR(20) NULL,
	E_Mail  VARCHAR(20) NULL
)
;



ALTER TABLE Buyer
	ADD  PRIMARY KEY (Buyer_ID)
;

ALTER TABLE Buy
	ADD FOREIGN KEY (Book_ID, Shop_ID) REFERENCES Book(Book_ID, Shop_ID)
;

ALTER TABLE Buy
	ADD FOREIGN KEY (Buyer_ID) REFERENCES Buyer(Buyer_ID)
;

CREATE TABLE Take
(
	Book_ID  INTEGER NOT NULL,
	Shop_ID  INTEGER NOT NULL,
	Busket_ID  INTEGER NOT NULL,
	Number  VARCHAR(20) NULL
)
;



ALTER TABLE Take
	ADD  PRIMARY KEY (Book_ID,Shop_ID,Busket_ID)
;

ALTER TABLE Take
	ADD FOREIGN KEY (Book_ID,Shop_ID) REFERENCES Book(Book_ID,Shop_ID)
;


ALTER TABLE Take
	ADD FOREIGN KEY (Busket_ID) REFERENCES Busket(Busket_ID)
;
Выбивает ошибку: Cannot add foreign key constraint (0,515 сек)
Митовей вне форума Ответить с цитированием
Старый 27.02.2013, 20:03   #2
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

Почему вы первичным ключом назначаете поле, которое допускает значение NULL?
А локализовать ошибку лень?
Поочередно комментируя блоки где создаются внешние ключи...
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление внешнего ключа Ericnex БД в Delphi 6 02.05.2012 23:42
Проблема с домашним заданием на С Inna_L Помощь студентам 2 22.06.2010 04:10
Как создать ограничение внешнего ключа?? Voldemort123987 БД в Delphi 2 09.06.2010 19:53
проблема с определением внешнего ключа! veter_s_morya SQL, базы данных 1 26.06.2008 18:37