| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Error no 1005 |
| Автор: Dzonni 29.1.2008, 01:13 |
| Проблема такая. Надо создать два 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 29.1.2008, 01:37 |
| Ладно, вроде сам нашел ответ: 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/innodb-foreign-key-constraints.html |
| Автор: Dzonni 29.1.2008, 01:58 |
| Блин, опять не работает... 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 30.1.2008, 15:53 |
| Ладно, раз никто не может/хочет отвечать тему можно удалить! Спасибо! |
| Автор: skyboy 30.1.2008, 16:01 |
сообщение об ошибке отсутствует напрочь? просто "error 1005"? |
| Автор: igorold 30.1.2008, 16:05 | ||
| Dzonni, ты обратил внимание, что там везде указано ENGINE=INNODB; при создании таблиц? потому что:
а про INDEX - можешь пока без них обойтись, если тебе нужны индексы - прочитай что это ... в данном случае ошибка явно не из-за них ... |