所以,我有一個表,例如:創建可寫別名在Oracle 11g中列
CREATE TABLE FOO (
id INTEGER PRIMARY KEY,
blah VARCHAR2(20) NOT NULL
);
,我想列blah
重命名爲bleh
- 在bar
和baz
等同列表被稱爲bleh
,並且使表名在表中統一可以讓我簡化一些訪問這個數據庫的代碼。然而,僅僅使用ALTER TABLE
重命名列不會做,因爲生成的架構變化是尚未修改,以符合它的代碼向後兼容。
所以,我想讓它的bleh
作爲blah
的別名。起初,虛擬列看起來像一個方式來實現這一點:
ALTER TABLE FOO ADD (bleh AS blah);
然而,由此產生bleh
列不能被更新或插入,這使得它不適合我的目的。 有沒有一種方法來創建可寫(可更新/插入)列別名在甲骨文11gR2的?
我想你可以重命名'foo'到'foo_base',創建一個名爲'foo'該映射'blah'在'foo_base'在兩個視'blah'和'bleh'視圖。你不應該在視圖上使用觸發器,除非有''update''試着修改兩列的內容。另一種選擇是在表格中創建兩個物理列,並且只需要一個觸發器即可同步兩個物理列,直到您可以刪除舊列。 –
@JustinCave - 這聽起來像一個答案......頭腦發佈這樣的? – LThode