#1 18.04.06 14:17
[SQL] Объясните
Для чего нужны foreing keys (FK), реализован ли етот механизм в MySQL?
Желательно с примером.
Offline
#3 19.04.06 01:19
Re: [SQL] Объясните
Лей кому нить в аплоад, на плейцс например. У мну фтп нет.
Offline
#5 19.04.06 10:24
Re: [SQL] Объясните
SQL-технология позволяет на уровне столбца задавать домены значений, т.е. строго определенные наборы или диапазоны значений, для помещаемых в столбец данных. В частности можно реализовывать ограничения ссылочной целостности (referential integrity constraint) и проверки фиксированного условия. Ограничение ссылочной целостности не позволяет значениям из столбца одной таблицы принимать значения кроме как из присутствующих в столбце другой таблицы. Это делается при помощи ограничителей FOREIGN KEY (внешний ключ) и REFERENCES (указатель ссылки). Таблица, содержащая FOREIGN KEY, считается родительской таблицей. Таблица, содержащая REFERENCES, считается дочерней таблицей. Внешний ключ и указатель ссылки могут находиться в одной таблице, т.е. родительская таблица одновременно является дочерней.
FOREIGN KEY - внешний ключ. Назначает столбец или комбинацию столбцов в текущей (родительской) таблице в качестве внешнего ключа для ссылки из других таблиц.
REFERENCES - указатель ссылки (или родительский ключ). Указывает на столбец (комбинацию столбцов) в родительской таблице, ограничивающую значения в текущей (дочерней) таблице.
Для использования ограничений ссылочной целостности должны выполняться некоторые условия. В частности, родительская и дочерняя таблицы должны находиться в пределах одного аппаратного сервера базы данных, они не могут находиться на различных узлах распределенной базы данных. Столбцы, участвующие в отношении ограничения ссылочной целостности обязаны иметь один и тот же тип данных.
в MySQL данный механизм естественно реализован.
Offline
#8 19.04.06 20:37
Re: [SQL] Объясните
самое смешное в том, что с MyISAM (вместо InnoDB) MySQL без жалоб принимает стейтмент CREATE TABLE ... FOREIGN KEY (...) REFERENCES ...(...), хотя внешний ключ в таблицах типа MyISAM не проверяется. Короче - будь внимательным или пользуйся настоящой СУБД а не MySQL :)
Исправлено ska-fan (21.04.06 00:20)
Offline
#9 19.04.06 20:54
Re: [SQL] Объясните
Да вот я вчера как раз и выполнил такой квери - прошел без проблем, в таблице появился какой-то обычный ключ без флага и родины, как надо не работает. Отсюда и вопрос возник
Исправлено Тяжелый случай (19.04.06 20:55)
Offline

