![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Dzonni |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.1.2008 Репутация: нет Всего: нет |
Проблема такая. Надо создать два entity set и relationship между ними . Одна из таблиц имеет participation constraint.
Таблица Team с аттрибутом university (этот аттрибут primary key). Таблица Person аттрибутом personID (primary key) и university, который является foreign key и указывает на таблицу Team, чтобы указать participation constraint этот аттрибут имеет свойство NOT NULL. (То есть каждый человек должен быть членом одной команды). Вот в MySql изображаю: CREATE TABLE team ( university char(50) NOT NULL, entryFeePaid int(1) NOT NULL, PRIMARY KEY (university) ); все проходит гладко. Идем дальше... Create table Person ( personID char(10) NOT NULL, name char(35) NOT NULL, experienceLevel char(20) NOT NULL, university char(50) NOT NULL, primary key (personID), foreign key (university) references team ); Тут выплевывает ошибку 1005. Я гуглил по ошибке, понял так, что я не в правильном порядке создаю таблицы, что таблицу мастер создаю раньше, чем зависимую (дословно с форума)... Странно, но пробовал наоборот, все равно. Версия Mysql: 5.0 Помогите, где я чего-то недопонял? |
|||
|
||||
Dzonni |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.1.2008 Репутация: нет Всего: нет |
Ладно, вроде сам нашел ответ:
create table person ( personID INT(5), name char(30), university char(50) NOT NULL, primary key (personID), foreign key (university) references team(university) ); Только что такое INDEX? Например отсюда из комментов: http://dev.mysql.com/doc/refman/5.0/en/inn...onstraints.html |
|||
|
||||
Dzonni |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.1.2008 Репутация: нет Всего: нет |
Блин, опять не работает...
create table memberOf ( personID char(50) NOT NULL, university char(50) NOT NULL, primary key (personID), INDEX (personID), foreign key personID) references person(personID), INDEX (university), foreign key (university) references team(university) ); Та же 1005 ошибка. Почему? И что это за INDEX? Я выловил его из описания на сайте MySQL, но его присутствие/отсутствие ничего не меняет : ( |
|||
|
||||
Dzonni |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 5.1.2008 Репутация: нет Всего: нет |
Ладно, раз никто не может/хочет отвечать тему можно удалить!
Спасибо! |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
Dzonni, ты обратил внимание, что там везде указано ENGINE=INNODB; при создании таблиц?
потому что:
а про INDEX - можешь пока без них обойтись, если тебе нужны индексы - прочитай что это ... в данном случае ошибка явно не из-за них ... Это сообщение отредактировал(а) igorold - 30.1.2008, 16:09 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |