我有兩個表:members
和members_data
。
他們都共享相同的唯一自動增量id
密鑰和唯一username
字段。兩個MySQL表的合併和別名
我想這兩個表合併成一個members
表,但我使用members
& members_data
引用〜50個腳本。我還需要某種別名設置,以使我的members_data
查詢指向新的members
表。
這可能嗎?
我有兩個表:members
和members_data
。
他們都共享相同的唯一自動增量id
密鑰和唯一username
字段。兩個MySQL表的合併和別名
我想這兩個表合併成一個members
表,但我使用members
& members_data
引用〜50個腳本。我還需要某種別名設置,以使我的members_data
查詢指向新的members
表。
這可能嗎?
您可以通過創建一個只從另一個表中執行SELECT *的視圖來有效地將表別名到另一個表。然而,這是不是一個好做的事:
然而,取決於它是多麼容易測試這些「50個腳本」,以及如何批判他們(提示:非常關鍵的代碼難以測試可以把有效發展的真正制動器),創建視圖在短期內可能是一件務實的事情(而且短期解決方案通常會在實際應用中保持多年或永遠不變)。
我強烈建議您在任何可行的情況下更改「50腳本」並執行所有必要的測試以發佈此類更改。在我們的團隊中,我們進行了修改(單個版本),這些修改比「50個腳本」更多,但測試當然證明具有挑戰性(或至少耗時)。
隨着應用程序變得越來越大和越來越複雜,迴歸測試變得越來越困難。儘可能多地考慮它至關重要,因爲重構將變得必要(假設應用程序得到開發或維護),並且因爲迴歸是不好的。
**當然,您的所有表格,視圖等都是腳本化的,並在源代碼管理系統中!
它們都共享相同的唯一自動增量ID鍵和唯一的用戶名字段。
這句話是沒有意義的gobbledy-gook。 MySQL中沒有辦法(或者兩個表可以共享列的大多數rDBMS)。
我懷疑你的問題可能有幾個可能的答案,但沒有看到實際的模式很難說。
假設您確實意味着兩個表都有一個用戶名字段,它在這兩個表中都是唯一的且大小相同,並且這兩個表都有一個名爲id的自動增量列,那麼情況會更加清晰 - 在這種情況下創建一個實現兩個基礎表的列的組合表,將數據遷移到其中並將兩個原始表替換爲視圖。
C.
從我剛剛閱讀我不能使用視圖,因爲它不會在更新查詢(我會需要更新members_data實際上更新成員後,我已經刪除表)。我想我必須改變腳本,因爲它表示視圖並未優化,而且我不能長時間保留這些腳本! 感謝您的幫助 – Juddling
您應該能夠更新視圖,除非它以更新沒有意義的方式定義。 「SELECT * from t」視圖應該沒問題。 – MarkR