在用户界面中,我显示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