Могут ли быть два одинаковых значения внешнего ключа у двух объектов?
Есть две таблицы - Resumes и Works. В Resumes есть поле id serial primary key, в Works - cv_id serial references resumes (id)
Могут ли в таблице Works существовать два или более объектов с одинаковыми значениями cv_id? То есть ссылающиеся на один и тот же экземпляр в таблице таблицы Resume. При попытке вставить второе значение получаю insert or update on table "works" violates foreign key constraint "works_cv_id_fkey"
Дополнительно:
а вы точно вставляете ключ который существует в Resumes? И никакого unique constraints на поле cv_id нет?
unique constraint нет, вот полная сигнатура поля cv_id в Works
cv_id serial references resumes (id) ON DELETE CASCADE
А вот id в Resumes
id serial primary key,
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, внешний ключ может иметь одинаковые значения у двух объектов. Внешний ключ - это столбец в таблице, который ссылается на первичный ключ другой таблицы. Он используется для установления связи между двумя таблицами в базе данных.
Когда мы говорим о том, что два объекта имеют одинаковые значения внешнего ключа, мы обычно имеем в виду, что у этих объектов есть отношение с одним и тем же объектом в другой таблице. Например, если у нас есть таблица "Заказы" и таблица "Клиенты", и в таблице "Заказы" есть столбец "id_клиента", который является внешним ключом к столбцу "id_клиента" в таблице "Клиенты", то два заказа могут иметь одинаковое значение id_клиента, если они принадлежат одному и тому же клиенту.
Это нормальная ситуация в базах данных, и она не вызывает проблем. База данных позволяет иметь одинаковые значения внешнего ключа у разных объектов, поскольку каждый объект все равно имеет уникальный идентификатор (первичный ключ), который различает их.
Однако, при использовании внешних ключей, необходимо убедиться, что значения внешнего ключа соответствуют значениям первичного ключа в связанной таблице, чтобы избежать ошибок при выполнении операций с данными. В случае нарушения целостности данных (например, попытки создать заказ для несуществующего клиента), база данных может выдать ошибку.
Итак, в ответ на ваш вопрос, да, два объекта могут иметь одинаковые значения внешнего ключа, и это не вызывает проблем, если данные корректно связаны и целостность данных соблюдается.