在用戶界面中,我顯示account_id
和account_name
。
用戶能夠更新account_id以及account_name,並且account_id對用戶是唯一的。由於我允許用戶更新account_id(組合鍵),我怎樣才能在更新時創建一個where子句?SQL:如何更新複合鍵?
以下是我的餐桌設計。
CREATE TABLE accounts (
user_id VARCHAR2(20) NOT NULL,
account_id VARCHAR2(20) NOT NULL,
account_name VARCHAR2(20) NOT NULL
)
ALTER TABLE accounts ADD CONSTRAINT
uk_myTable_1 UNIQUE (User_id, account_id)
雖然這有效,但我都是爲了永遠不會分享或展示的幕後不可變的鑰匙;它消除了外鍵關係和組合鍵部分更新的問題。(IE添加一個字段(AccountID,這是PK,並用於FK關係。 – xQbert
@OMGPonies它的Oracle ... – james007
一些想法的飼料:http://programmers.stackexchange.com/questions/8187/should-a- primary-key-be-immutable – xQbert