有什麼方法可以在不同的表格的兩個字段中始終保持相同的值?MySQL:在不同表格的兩個字段中始終保持相同的值
回答
您可以使用triggers,以便如果其中一個字段發生更改,另一個字段會同步以匹配。
通常最好不要將值存儲兩次。相反,你可以存儲在表中只有一個值,當您查詢,您可以加入兩個表一起上的外鍵,讓你在同一時間從兩個表獲取值:
SELECT table1.foo, table2.bar
FROM table1
JOIN table2 ON table1.table2_id = table2.id
如果您將該值存儲兩次,稱爲非規範化。如果這些值出於某種原因而失去同步,這可能會導致問題。有時非規範化以提高性能是有利的,但單個連接速度非常快,除非您已經測量了性能並發現它太慢,否則我建議不要這樣做。
INSERT INTO TABLE A (FieldInA) VALUES ('X')
INSERT INTO TABLE B (FieldInB) VALUES ('X')
那麼根本不會刪除,也沒有更新,這些錶行,瞧,你總是在不同表的兩個字段的值相同。
哈哈哈!我真的希望你的意圖是作爲一個笑話... – 2010-08-10 18:19:10
不是我,但它是一場賭博。如果你刪除這個答案,當重新計算代表時,你會得到代表。 – 2010-08-10 18:22:57
爲什麼你不能爲你的數據庫設計normalize
,以便你沒有相同的數據兩次,不必擔心這樣的東西了?
如果你不能改變設計看一看triggers
我的猜測是保持相同的值是用戶輸入的自由格式文本或soemthing,但是然後他可以有一個表格並通過ID引用新條目。 – FrustratedWithFormsDesigner 2010-08-10 18:18:02
爲什麼你想這樣做嗎?
如果一個實體的一個屬性是總是與另一個相關實體的某個屬性相同,那麼你就有一個冗餘數據模型。
,而不是試圖同步屬性,參考一個屬性。使用連接將第一個表連接到第二個表,然後從一個表中獲取該屬性的值。例如,如果您目前有這樣的:
TableA.foo should always equal TableB.bar
刪除列TableA.foo,並做到這一點:
select A.*, B.bar as foo
from TableA A
join TableB B on (B.foreign_key = A.key);
- 1. Mysql設置兩個字段保持相同的值?
- 2. 從兩個不同的表中查詢相同的字段MYSQL
- 3. 兩個表格行的高度始終相同
- 4. 如何比較兩個不同表中的相同字段?
- 5. mySQL在兩個不同的表格中計數相似的行
- 6. 搜索兩個不同的MySQL表與不同的字段
- 7. 避免兩個字段的值相同
- 8. 如何將兩個不同的值插入相同的字段?
- 9. 以兩個不同的值並排顯示相同的字段
- 10. 訪問ui元素時始終保持相同的值
- 11. 保持兩個表格的寬度相同
- 12. MYSQL:加入兩個不同的字段到第三個表中的相同的字段
- 13. MySql單個查詢,兩個表相同的字段名稱
- 14. 兩個不同表格的兩個不同字段的內部連接
- 15. 在兩個不同的表中添加相同的值
- 16. 保持兩個div的長度相同
- 17. 加入兩個不同字段值的表格
- 18. 如何確保兩個div始終具有相同的高度?
- 19. 前10名的記錄從相同的MySQL表兩個字段
- 20. 爲什麼我在這段代碼中保持兩個相同的隨機值?
- 21. 來自兩個不同表格的兩個字段的Mysql總和
- 22. SQL查詢比較mysql中同一個表中不同行的相同字段
- 23. Mysql建議:具有相同值的兩個字段
- 24. MigraDoc中始終保持相同的頁碼
- 25. 我想在mysql工作臺表中的同一列的同一字段中有兩個不同的值?
- 26. 提交給兩個不同表格的相同表格
- 27. MySql同一表的兩個不同列的不同值
- 28. Mysql從兩個不同的表中選擇相同的結構
- 29. 更新在單個查詢中兩次相同的mysql字段
- 30. MySQL視圖鏈接3個字段到另一個表中的相同字段具有不同的值
你能成爲一個更具體一點這個問題的本質,你爲什麼要做這個? 「最好的」解決方案可能取決於它... – FrustratedWithFormsDesigner 2010-08-10 18:19:01