Database
SQL / OracleDB:如何為列中的所有欄位設置相同的值?
是否可以為列中的所有欄位設置值,例如:
ID Host URI 1 //cyrus /images 2 //cyrus /videos 3 //cyrus /text 4 //cyrus /misc 5 //cyrus /backup
我希望能夠在一個地方更改所有主機列條目——它們都是相似的。這個地方可以是像 Ocracle SQL Developer 或 Queries 這樣的 GUI,我不在乎,只要我只需要更改一個更改所有主機欄位的數據欄位即可。
聽起來你可以做類似的事情
UPDATE your_table_name SET host = '//new_host' WHERE host = '//cyrus'
更新表中的所有行。然而,將相同的數據儲存在表的多行中違反了規範化的基本原則。您幾乎總是希望修改架構設計,以便為 HOST 提供一個單獨的表以及從您的表到主機表的外鍵。就像是
CREATE TABLE host ( host_id NUMBER PRIMARY KEY, host_name VARCHAR2(50) ); CREATE TABLE your_table_name ( your_id NUMBER PRIMARY KEY, host_id NUMBER REFERENCES host( host_id ), uri VARCHAR2(100) );
如果你這樣做了,你只需要更新表中的一行
HOST
來更新表中所有行的主機名。