0
我想我知道這個答案,但我想問問社區。MySQL可以執行全局WHERE子句和/或它們是否存在?
試想兩個表:
表A
ID | Col1 | isActive
1 "Some Data1" 1
2 "Some Data2" 1
3 "Some Data3" 0
4 "Some Data4" 1
表B
ID | TableA_ID | isActive
1 1 1
4 1 1
7 3 1
8 4 1
而下面的查詢:
SELECT A.COL1
FROM TableB as B
JOIN TableA as A
ON A.ID = B.TableA_ID
WHERE b.ID in (1,4,7);
,將返回這些結果:
Col1
"Some Data1"
"Some Data1"
"Some Data3"
但我想要的是:
Col1
"Some Data1"
"Some Data1"
我不想添加一個 「WHERE isActive = 1」 的條件,每個連接和每一個where子句。和其他許多人一樣,我們不喜歡刪除記錄的想法。但是,爲每個查詢添加「WHERE isActive = 1」非常繁瑣和重複。
所以,問題是:
我可以強制執行這種對我的數據庫所做的所有查詢「全球狀況」?有沒有人想知道這件事?
這可能是一個VIEW。在Oracle中,這是一個行級安全謂詞(可能)。或者使用觸發器將非活動行移動到歸檔表。 – Randy