Когда есть один из столбцов, ссылающихся на другой, я изо всех сил пытаюсь обновить этот столбец, сохраняя ссылочную целостность. Например, если у меня есть таблица этикетки и описания и две записи:Обновление столбцов в Postgres
Label | Description
------------------------------------
read | This item has been read
READ | You read this thing already
Теперь, я не хочу, чтобы эти дубликаты. Я хочу добавить ограничение в столбец, который не позволяет значения, которые нечувствительны к регистру, как в примере. Тем не менее, у меня есть несколько строк из нескольких других таблиц, ссылающихся на «READ», тот, который я хочу удалить.
Я знаю, что Postgres знает, какие поля других строк ссылаются на это, потому что я не могу удалить его, пока они есть. Итак, как я могу получить какое-либо поле, ссылающееся на это, на обновление до «чтения»? Это всего лишь пример, и на самом деле у меня есть несколько мест, которые я хочу сделать. Другой пример - фактически первичный ключ int для нескольких таблиц, где я хочу добавить новую таблицу как своего рода «базовую таблицу», которую расширяют существующие, и поэтому всем они должны будут иметь уникальные идентификаторы сейчас, что означает обновление те, которые у них есть.
Я открыт для рецептов функций, которые я могу добавить, чтобы сделать это, инструменты, которые я могу использовать, или что-то еще.
mmm ... если у вас есть «чтение» и «READ», вы не сможете обновить. Я думаю, что вся таблица ссылок должна быть обновлена, а затем запись с «READ» отброшена. С «ON DELETE RESTRICT» по внешнему ключу нет никакого риска пропустить что-либо. – piro
Почему нет? вы просто должны быть осторожны, чтобы правильно обновлять, только те, у которых есть «READ» –