Вопросы с тегом «foreign-key»

15
Рекурсивное само присоединение

У меня есть commentsтаблица, которая может быть упрощена до этого: comments ======= id user_id text parent_id где parent_idобнуляется, но может быть ключом для родительского комментария. Теперь, как я могу selectвсе потомки конкретного комментария? Комментарии могут быть на несколько уровней ниже...

15
Какова цель SET NULL в ограничениях удаления / обновления внешних ключей?

Я, вероятно, ограничен, но если я создаю ограничение внешнего ключа и строка обновляется или удаляется, я теряю это соединение, если столбцу дочерней таблицы задано значение NULL. Какова цель намеренного сохранения этих осиротевших...

14
Условное отношение внешнего ключа

В настоящее время у меня есть внешний ключ между двумя сущностями, и я хотел бы сделать это отношение условным для entityType одной из таблиц. Вот иерархия таблиц, это делается с помощью FK-ссылок от дочернего элемента к родительскому. Store / \ Employees \ TransactionalStores / | \ Kiosks |...

14
Внешние ключи - ссылка, использующая суррогатный или натуральный ключ?

Существует ли передовая практика для того, чтобы внешний ключ между таблицами связывался с естественным ключом или суррогатным ключом? Единственное обсуждение, которое я действительно нашел (если не хватает моего гугл-фу) - это ответ Джека Дугласа на этот вопрос , и его рассуждения кажутся мне...

14
Каковы лучшие практики относительно таблиц поиска в реляционных базах данных?

Таблицы поиска (или таблицы кодов , как их называют некоторые люди) обычно представляют собой набор возможных значений, которые могут быть заданы для определенного столбца. Например, предположим, что у нас есть справочная таблица party(предназначенная для хранения информации о политических...

13
Почему удаление внешних ключей занимает много времени?

Я создал скрипт, который по одному удаляет все внешние ключи из базы данных, вот так: ALTER TABLE MyTable1 DROP CONSTRAINT FK_MyTable1_col1 ALTER TABLE MyTable2 DROP CONSTRAINT FK_MyTable2_col1 ALTER TABLE MyTable2 DROP CONSTRAINT FK_MyTable2_col2 Что меня удивляет, так это то, что сценарий...

13
Разве плохая идея создавать внешние ключи для таблиц в разных схемах в одной базе данных для больших приложений?

Я работаю над переносом большого веб-приложения pl / sql на выделенный сервер. Это приложение расположено в одной схеме с 70 пакетами программного кода. Это приложение было сделано примерно около 15 человек в разное время. И для нас было обычной практикой создавать внешние ключи для ссылочных...

12
MySQL - удалить строку с ограничением внешнего ключа, которая ссылается на себя

У меня есть таблица, в которой я храню все сообщения форума, опубликованные пользователями на моем сайте. Структура иерархии сообщений реализована с использованием модели Nested set . Ниже приведена упрощенная структура таблицы: Id (ПЕРВИЧНЫЙ КЛЮЧ) Owner_Id (ИНОСТРАННЫЕ КЛЮЧЕВЫЕ ССЫЛКИ НА Id )...

12
PostgreSQL - вставка / обновление нарушает ограничения внешнего ключа

Я новый в PostgreSQL. У меня есть 3 таблицы, одна таблица ссылается на первичные ключи другой 2 таблицы. Но я не мог вставить данные в Table3. Смотрите код ниже: DROP TABLE Table1 CASCADE; CREATE TABLE Table1( "DataID" bigint NOT NULL DEFAULT '0', "AdData" integer DEFAULT NULL, PRIMARY KEY...

11
Должен ли я добавить транзитивные внешние ключи?

Простой пример: есть таблица клиентов. create table Customers ( id integer, constraint CustomersPK primary key (id) ) Все остальные данные в базе данных должны быть связаны с Customer, например, Ordersтак: create table Orders ( id integer, customer integer, constraint OrdersPK primary key...

11
Как связать две строки в одной таблице

У меня есть таблица, где строки могут быть связаны друг с другом, и логически, отношения между двумя строками (в основном, без направления). (И если вам интересно, да, это действительно должна быть одна таблица. Это две вещи одного и того же логического объекта / типа.) Я могу придумать пару...

11
Каскадное обновление первичного ключа для всех ссылающихся внешних ключей

Можно ли обновить значение столбца первичного ключа с помощью каскадного обновления среди всех внешних ключей, ссылающихся на него? # РЕДАКТИРОВАТЬ 1: Когда я запускаю запрос followinq select * from sys.foreign_keys where referenced_object_id=OBJECT_ID('myTable') Я вижу, что...

11
Что теряется, когда я создаю внешний ключ, используя `WITH NOCHECK`?

Я знаю, что если я EXISTS()вызову значение поиска FK, то, если это ограничение FK является доверенным, результат будет немедленным. И если ему не доверяют (например, когда я создаю FK с использованием WITH NOCHECK), то SQL Server должен пойти и проверить таблицу, чтобы увидеть, действительно ли...

11
Как часто будет запускаться триггер FOR EACH STATEMENT, если операция вызвана ограничением FK с помощью UPDATE CASCADE?

Я понимаю, что триггер в таблице t, определенной с помощью, FOR EACH STATEMENTбудет запущен один раз, когда я выполню UPDATE t .... Теперь, когда tопределено с помощью FOREIGN KEY ... REFERENCES a ... ON UPDATE CASCADE, и я обновляю N строк a, вызовет ли триггер вызов один раз или N раз? Другими...

11
Внешние ключи становятся ненадежными после массовой вставки

На сервере редакции SQL 2014 (12.0.2430.0 - пока нет SP1) с базой данных в режиме совместимости 2012 (работающей над его переключением на 2014 ...) у меня есть несколько объектов внешнего ключа, которые последовательно помечены как not trustedв базе данных , Я удалил и воссоздал их без...

11
Существуют ли какие-либо механизмы базы данных, которые будут интуитивно понятны условию соединения на основе существующих внешних ключей?

Мне кажется странным, что, когда я определил внешний ключ, движок не может использовать эту информацию для автоматического определения правильных выражений JOIN, а вместо этого требует от меня повторного ввода тех же предложений. Существуют ли какие-либо базы данных, возможно, какой-то...

11
Как добавить столбец с ограничением внешнего ключа в таблицу, которая уже существует?

У меня есть следующие таблицы, CREATE TABLE users (id int PRIMARY KEY); -- already exists with data CREATE TABLE message (); Как мне изменить messagesтаблицу так, чтобы, senderк нему добавляется новый столбец с именем где senderвнешний ключ ссылается на usersтаблицу Это не сработало # ALTER TABLE...

10
Обеспечение соблюдения ограничений «на расстоянии двух столов»

Я столкнулся с некоторыми проблемами при моделировании электрической схемы в SQL. Структура, которую я хотел бы захватить, part ←────────── pin ↑ ↑ part_inst ←───── pin_inst где «inst» - это сокращение от «instance». Например, я мог бы иметь в partкачестве операционного усилителя LM358 с pins 1OUT,...

10
Как получить данные об ограничениях внешнего ключа

Я ищу запрос, позволяющий получить информацию о внешнем ключе (каждая строка: ссылочная таблица и поле, ссылочная таблица и поле) всей схемы. Я нашел это, но не дает всю необходимую информацию: /programming/4389228/sql-for-oracle-to-check-if-a-constraint-exists В настоящее время я работаю над этим...