Значения account_id
и user_id
сохраняются до тех пор, пока вы их не измените.
Таким образом.если он начинается как user_id
10 с account_id
20 и вы меняете account_id
на 30, например
UPDATE accounts
SET account_id = '30'
WHERE account_id = '20'
AND user_id = '10';
Хотя вышеприведенное работает для ситуаций, когда вы сохраняете все значения вашего составного ключа, я 'все за неизменный ключ за кулисами, который никогда не передается и не отображается.Это устраняет проблемы со связями внешних ключей и обновлениями частей составных ключей.Чтобы реализовать это, добавьте поле (AccountID), которое является PK и используется в связях FK.
В качестве альтернативы, Oracle может сделать что-то похожее, используя ROWSCN и в средах без состояний зависимости строк во всех таблицах.Проблема, с которой вы можете столкнуться при использовании, если просто AccountID, состоит в том, что в многопользовательской среде можно сделать так, чтобы человек сделал обновление для записи 1, а пользователь 2 - для редактирования записи 1, а затем сохранить;переписывает обновления пользователя 1.По этой причине я упомянул ROWSCN и ROWDEPENDENCIES.Однако, если вы находитесь в среде, осведомленной о состоянии, это будет излишним.
Наконец, вы можете изменить порядок операций, чтобы выполнить обновление базы данных ДО того, как вы обновите свой класс.Таким образом, у вас есть оба значения.