Forum Webscript.Ru

Общие => Базы данных => Тема начата: Neter от 13 Сентября 2002, 12:03:45

Название: MySQL и референции
Отправлено: Neter от 13 Сентября 2002, 12:03:45
Вот недавно захотел их поюзать, а они чё-то не катят..
У меня стоит MySQL версии: 3.23.42..

Почитал ФАКу к нему, там написано чё-то по типу:
rules_id integer NOT NULL REFERENCES rules

в таблице rules поле id - PRIMARY KEY

таблица создалась вроде нормально, без ошибок, но референции не работают..

Ещё пробывал так:
rules_id integer NOT NULL,
FOREGIN KEY (rules_id) REFERENCES rules(id)

Но при создании таблицы выскакиват ошибка синтаксиса в этом месте...
Название: MySQL и референции
Отправлено: fidget от 13 Сентября 2002, 12:33:29
просто REFERENCES ничего не делают :) они для совместимости с другими СУБД :)

что касается foreign key - они поддерживаются только у таблиц InnoDB (обе таблицы), проверь какой тип твоей таблицы.
SHOW TABLE STATUS LIKE .. или SHOW CREATE TABLE

кроме того оба столбца (rules_id и rules(id)) - должны быть проиндексированы.

ПС: Если хочешь поиграться с  foreign key я бы тебе посоветовала проапгрейдится до 3.23.52, там не только проверякется ссылочная целостность, но и работают ON CASCADE DELETE, ON CASCADE SET NULL
да и багов достаточно было пофиксено.
Название: MySQL и референции
Отправлено: Neter от 13 Сентября 2002, 19:54:54
Ладно, спасибо, пойду качать 3.23.52..

П.С.
Незнал, что тут девушки ходют.. да ещё тАкие :)