| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
связи между таблицами в mysql
народ, подскажите пожалуйста такую вещь.
для того, чтобы сделать в mysql связь между двумя таблицами по уникальному идентификатору id, достаточно ли в одной таблице сделать id полем primary key, а в другой таблицу просто занести поле id ? станет ли он автоматически полем foreign key, ? или же если я хочу связь один-к-одному, можно ли сделать в двух этих таблицах поле id - primary key, и будет ли это сразу внешней связью ? или как можно сделать эту самую связь, а то mysql ругается постоянно на слово foreign key ? |
|
|
# 2 |
|
NewСибирский Монк
Регистрация: 30.06.2002
Сообщения: 3 641
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
сразу ничего не делается
в принципе, даже не обязательно объявлять поле ключом, связь можно сделать на уровне sql-запроса.
__________________
Свои носки я стираю Лаской Магия Черного и они надолго сохраняют свой естественный черный цвет! |
|
|
|
|
# 3 |
|
Guest
Сообщения: n/a
|
ну это мне понятно.
но это же связь всего лишь на тот момент, на который выполняется этот sql запрос. а дальше переменная обнуляется, и все. опять таблицы все просто разные. а мне бы хотелось чтобы эти связи были на веки вечные как бы, так как это делается в Access. можно ли сделать так ? или все таки этих sql запросов в принципе будет достаточно для связи одномоментной ? |
|
|
# 15 | |
|
Newbie
Регистрация: 07.03.2002
Адрес: Latvia
Сообщения: 43
![]() |
Цитата:
__________________
TheSig |
|
|
|
|
|
# 17 |
|
Guest
Сообщения: n/a
|
Постараюсь обобщить все вышесказанное.
1. Объединение таблиц по JOIN - действует только на результирующий набор оператора SQL SELECT. Это, если можно так выразиться, виртуальное объединение. 2. Для физического объединения нужно использовать FOREIGN KEY. Документацию по синтаксису можно найти на сайте www.mysql.com. Кажется выше была указана ссылка на соответствующий раздел. 3. FOREIGN KEY в MySQL работатает только в таблицах типа InnoDB. Для работы с этим типом таблиц нужно иметь конфигурацию MySQL Max. Для запуска InnoDB нужно добавить некоторые параметры в конфигурационный файл my.ini (или в my.cnf). 4. Таблицу можно преобразовать в InnoDB оператором ALTER TABLE xxx TYPE=INNODB. |