imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 19.02.2003, 23:19     # 1
dthnth
Guest
 
Сообщения: n/a

связи между таблицами в mysql

народ, подскажите пожалуйста такую вещь.
для того, чтобы сделать в mysql связь между двумя таблицами по уникальному идентификатору id, достаточно ли в одной таблице сделать id полем primary key, а в другой таблицу просто занести поле id ? станет ли он автоматически полем foreign key, ? или же если я хочу связь один-к-одному, можно ли сделать в двух этих таблицах поле id - primary key, и будет ли это сразу внешней связью ?
или как можно сделать эту самую связь, а то mysql ругается постоянно на слово foreign key ?
 
Старый 20.02.2003, 00:15     # 2
dimonk
NewСибирский Монк
 
Аватар для dimonk
 
Регистрация: 30.06.2002
Сообщения: 3 641

dimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуру
сразу ничего не делается в принципе, даже не обязательно объявлять поле ключом, связь можно сделать на уровне sql-запроса.
__________________
Свои носки я стираю Лаской Магия Черного и они надолго сохраняют свой естественный черный цвет!
dimonk вне форума  
Старый 20.02.2003, 01:48     # 3
dthnth
Guest
 
Сообщения: n/a

ну это мне понятно.
но это же связь всего лишь на тот момент, на который выполняется этот sql запрос. а дальше переменная обнуляется, и все. опять таблицы все просто разные.
а мне бы хотелось чтобы эти связи были на веки вечные как бы, так как это делается в Access. можно ли сделать так ? или все таки этих sql запросов в принципе будет достаточно для связи одномоментной ?
 
Старый 20.02.2003, 04:24     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Это ты нас спрашиваешь ? Ты бы еще нас спросил хорошо ли у тебя плита вписывается в кухонный гарнитур .
RaZEr вне форума  
Старый 20.02.2003, 04:42     # 5
dthnth
Guest
 
Сообщения: n/a

вообще то я спрашиваю, как сделать внешний ключ в таблицах mysql. непосредственно синтаксисом sql. и помоему ничего лишнего другого.
извините, если кто обиделся.
 
Старый 20.02.2003, 04:50     # 6
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Какой еще внешний ключ В MySQL единственный способ связать две таблицы это LEFT JOIN .
RaZEr вне форума  
Старый 20.02.2003, 05:40     # 7
dimonk
NewСибирский Монк
 
Аватар для dimonk
 
Регистрация: 30.06.2002
Сообщения: 3 641

dimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуруdimonk Отец (мать) всех Гуру
или перейти на sybase или там ms
__________________
Свои носки я стираю Лаской Магия Черного и они надолго сохраняют свой естественный черный цвет!
dimonk вне форума  
Старый 22.02.2003, 04:10     # 8
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Ага ... или Oracle ... чего размениваться то
RaZEr вне форума  
Старый 23.02.2003, 02:11     # 9
Gike
сошел
 
Регистрация: 03.06.2002
Сообщения: 662

Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)
RaZEr
Можно краткую информацию о LEFT JOIN?
И если нетрудно пример.....
Gike вне форума  
Старый 23.02.2003, 03:08     # 10
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
RTFM
RaZEr вне форума  
Старый 23.02.2003, 03:32     # 11
Gike
сошел
 
Регистрация: 03.06.2002
Сообщения: 662

Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)
RaZEr
Извини, не понял....
Gike вне форума  
Старый 23.02.2003, 03:49     # 12
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Read The Functions Manual
RaZEr вне форума  
Старый 23.02.2003, 16:28     # 13
Aeon
::VIP::
 
Аватар для Aeon
 
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166

Aeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собой
<offtopic>
а, так F теперь расшифровывается как Function? надо-же в моё время это расшифровывалось гораздо грубее
</offtopic>
Aeon вне форума  
Старый 23.02.2003, 22:33     # 14
Gike
сошел
 
Регистрация: 03.06.2002
Сообщения: 662

Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)Gike Реально крут(а)
спасибо....
Gike вне форума  
Старый 27.02.2003, 18:21     # 15
TheSig
Newbie
 
Регистрация: 07.03.2002
Адрес: Latvia
Сообщения: 43

TheSig Путь к славе только начался
Цитата:
Как писал RaZEr
Какой еще внешний ключ В MySQL единственный способ связать две таблицы это LEFT JOIN .
Нмм.. Проще делать таблици типа InnoDB там какраз есть воможность FOREIGN KEY. И соответственно никакого гимора - пущай сама DB заботится далее
__________________
TheSig
TheSig вне форума  
Старый 10.03.2003, 01:04     # 16
Bek
::VIP::
 
Аватар для Bek
 
Регистрация: 25.12.2002
Адрес: SPb.RU
Сообщения: 958

Bek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek СэнсэйBek Сэнсэй
TheSig
точно

http://www.mysql.com/doc/en/SEC457.html
Bek вне форума  
Старый 14.03.2003, 17:02     # 17
FractalizeR
Guest
 
Сообщения: n/a

Exclamation

Постараюсь обобщить все вышесказанное.
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.
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:55.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.