EuGen пишет:Нарушена. Вы пытаетесь создать внешний ключ на поле VARCHAR(20), который будет ссылаться на поле типа INT
Типы полей должны совпадать.
Вот черт.
Спасибо большое.
Из-за такой мелочи еще и тему создал
(Добавление)
Сделал вот так.
Можете проверить правильна ли связь?
Ни разу не связывал сотавные первичные ключи.
Внешний ключ тоже должен быть составной?
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE parts( name VARCHAR(20) NOT NULL, description TEXT NOT NULL, CONSTRAINT pkIdParts PRIMARY KEY(name) ); CREATE TABLE category( name VARCHAR(20) NOT NULL, part VARCHAR(20) NOT NULL, CONSTRAINT pkIdCat PRIMARY KEY(name,part), CONSTRAINT fkCatagoryPart FOREIGN KEY(part) REFERENCES parts(name) ); CREATE TABLE ads( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, text TEXT NOT NULL, cat VARCHAR(20) NOT NULL, part VARCHAR(20) NOT NULL, email VARCHAR(20) NOT NULL, fio VARCHAR(50) NOT NULL, CONSTRAINT pkIdAds PRIMARY KEY(id), CONSTRAINT fkAdsCat FOREIGN KEY(cat,part) REFERENCES category(name,part) );
(Отредактировано автором: 24 Ноября, 2011 - 13:58:33)
|