目前,我有一個數據庫將布爾字段存儲爲VARCHAR(1)('T'或'F')。我想用BIT替換這些。問題在於,這需要在使用數據庫的程序中進行大量更改。所以我認爲合乎邏輯的步驟是添加一個BIT字段並用我可以訪問的計算列替換現有的VARCHAR(1)字段而不是訪問BIT字段(因此程序可以繼續按原樣繼續工作而不會更改,並且可以更改隨着時間的推移使用BIT字段)。更新計算列,將VARCHAR轉換爲BIT
我知道這不起作用(UPDATE和INSERT不適用於計算列)。我知道一個選擇是重命名現有的表並添加一個視圖來訪問它,但我不認爲這是一個可行的解決方案,因爲添加和刪除列,更改從屬視圖等將容易出錯(在我看來這不是一個完美的解決方案)。
我的問題是 - 我有什麼選擇來實現上述行爲(例如,程序可以繼續按原樣工作)?
一個例子:
User (Active VARCHAR(1), ...)
更改爲使用計算列:(無效)
User (Active_B BIT, Active AS CASE Active_B WHEN 1 THEN 'T' ELSE 'F' END, ...)
更新:例如在固定誤差。
不幸的是,你不能吃蛋糕,也吃不了它。您已經說明了解決方案(s)及其所有缺點... –