Форум программистов, компьютерный форум, киберфорум
Наши страницы
Oracle
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/48: Рейтинг темы: голосов - 48, средняя оценка - 4.73
SeriyEzh
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 2
1

Создание связей между таблицами

17.02.2010, 12:41. Просмотров 9441. Ответов 5
Метки нет (Все метки)

Всем привет. Подскажите знающие люди как сделать следующее...
Есть таблица с заполненными id, есть другая таблица (пока пустая) например, с area...
Как заполнить таблицу area и создать связи один к одному (в соответствующей таблице связей) с id ?

Вопрос, конечно, дурацкий но надеюсь на подсказку.
Спасибо)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2010, 12:41
Ответы с готовыми решениями:

Для всех связей между таблицами схемы вывести
Помогите с запросом(без аналитических функций) Для всех связей между таблицами схемы вывести:...

Правильное создание связей между таблицами
Здравствуйте! Подскажите, как будет правильнее создать связи между таблицами? Например: ...

Определение связей между таблицами
Доброго времени. Задание можно делать в "режиме создателя", поэтому хотелось бы знать мнение - как...

Нарушение целостности данных при установке связей между таблицами
не могу связать таблицы: - Выдаётся ошибка о нарушении целостности данных. Не пойму в чём причина....

Логика связей между отношениями в БД
Доброго всем времени суток, не могу разобраться с логикой FK в БД. Я только начинаю, поэтому не...

5
dlinnbly
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
17.02.2010, 15:56 2
Чем заполнить?
Для связи 1 к 1 можно попробовать использовать внешний ключ и ограничение уникальности. Вот только нужно-ли это? Если 1 к одному не проще-ли данные в 1 таблице хранить?
0
SeriyEzh
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 2
17.02.2010, 17:13 3
Допустим заполнить некими тестовыми данными и привязать их к существующим.
Думал может можно каким то образом в одном цикле выбирать существующую запись и затем создавать связь с тестовыми данными...
0
\/
12 / 11 / 1
Регистрация: 11.02.2010
Сообщений: 57
17.02.2010, 17:46 4
Oracle 11 SQL
1
2
3
4
FOR v IN (SELECT ID FROM Table1) LOOP
  INSERT INTO Table2(..., ID, ...)
  VALUES(..., v.ID,...)
END LOOP;
1-1 - уникальные значения полей связи, и констрейнт?
0
dlinnbly
648 / 77 / 0
Регистрация: 23.01.2010
Сообщений: 193
17.02.2010, 21:34 5
Если я правильно Вас понял, то можете попробовать следующее, цикл не нужен, достаточно модификции таблицы и одной операции вставки.

Допущения:
1. Основная таблица: t1, таблица, которую необходимо заполнить: t2
2. На поле id таблицы t1 наложено либо ограничение первичного ключа, либо ограничение уникальности.

Oracle 11 SQL
1
2
3
4
5
ALTER TABLE t2 ADD CONSTRAINT constr_name FOREIGN KEY (id) REFERENCE t1(id);
ALTER TABLE t2 MODIFY (id NOT NULL);
 
INSERT INTO t2 (id [остальные необходимые поля через запятую])
  (SELECT id [тут значение перечисленных выше полей] FROM t1);
Синтаксис не проверял, могут вкрасться опечатки.
1
ПивоПротухло
0 / 0 / 0
Регистрация: 14.10.2009
Сообщений: 11
14.04.2010, 11:03 6
Доброе утро. Никак не пойму как в PL/SQL создать связь между таблицами исшпльзуя Primary Key i Foreign Key. Подскажите пожалуйста.. правильно ли я тут написал связи??
Скажем есть три таблицы: Klient, Komp, Modem.
Modem <- M:1 <- Klient -> 1:M -> Komp
m_mac.................. serial................k_mac
m_ip......................adres................k_ip


Oracle 11 SQL
1
2
3
4
5
6
7
8
9
ALTER TABLE modem ADD CONSTRAINT modem_pk PRIMARY KEY (m_mac);
 
ALTER TABLE modem ADD CONSTRAINT klient_pk PRIMARY KEY (serial);
 
ALTER TABLE modem ADD CONSTRAINT komp_pk PRIMARY KEY (k_mac);
 
ALTER TABLE modem ADD CONSTRAINT modem_fk_klient FOREIGN KEY(serial) klient;
 
ALTER TABLE komp ADD CONSTRAINT komp_fk_klient FOREIGN KEY(serial) klient;
Добавлено через 27 минут
Доброе утро. Никак не пойму как в PL/SQL создать связь между таблицами исшпльзуя Primary Key i Foreign Key. Подскажите пожалуйста.. правильно ли я тут написал связи??
Скажем есть три таблицы: Klient, Komp, Modem.
Modem <- M:1 <- Klient -> 1:M -> Komp
m_mac serial k_mac
m_ip adres k_ip


Oracle 11 SQL
1
2
3
4
5
6
7
8
9
ALTER TABLE modem ADD CONSTRAINT modem_pk PRIMARY KEY (m_mac);
 
ALTER TABLE modem ADD CONSTRAINT klient_pk PRIMARY KEY (serial);
 
ALTER TABLE modem ADD CONSTRAINT komp_pk PRIMARY KEY (k_mac);
 
ALTER TABLE modem ADD CONSTRAINT modem_fk_klient FOREIGN KEY(serial) REFERENCES klient;
 
ALTER TABLE komp ADD CONSTRAINT komp_fk_klient FOREIGN KEY(serial) REFERENCES klient;
0
14.04.2010, 11:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2010, 11:03

Создание счетчика и связей в Oracle 11g r-2
Всем привет. SQL знаю не очень, и связи в Oracle не делал никогда. Нужно сделать так, чтобы в...

Связи между таблицами
Приветствую. Хотел бы, что бы Вы, дорогие форумчане, помогли мне найти ошибку. Решил поиграться с...

Ссылки между таблицами
имеется две таблицы: ТОВАР и ПОСТАВКИ, с первичными ключами код_товара и код_поставки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru