在MySQL中有一種方法可以讓一列只是對同一張表上另一列的引用嗎?在MySQL中有一種方法可以讓一列只是對同一個表上另一列的引用嗎?
我正在處理一個非常老的MySQL數據庫,它沒有命名約定。我不能只重命名列,因爲這會破壞很多代碼。所以我認爲如果我可以將一個「快捷欄」添加到命名不佳的欄目然後可以互換地使用它們,那將會很酷。
在MySQL中有一種方法可以讓一列只是對同一張表上另一列的引用嗎?在MySQL中有一種方法可以讓一列只是對同一個表上另一列的引用嗎?
我正在處理一個非常老的MySQL數據庫,它沒有命名約定。我不能只重命名列,因爲這會破壞很多代碼。所以我認爲如果我可以將一個「快捷欄」添加到命名不佳的欄目然後可以互換地使用它們,那將會很酷。
你考慮過creating a view嗎?
CREATE VIEW view_name
AS SELECT *, bad_name as New_name
FROM table
我想假設創建一個相同的列名視圖,然後換出表對於使用它的ASP.NET堆來說,那麼我可以改變列名......這聽起來很合理嗎? – 0x4f3759df 2013-03-14 21:47:06
聽起來合乎邏輯,只要記住[視圖限制](http://dev.mysql.com/doc/refman/5.6/en/view-restrictions.html)即可。 – 2013-03-14 21:50:21
我不完全確定'reference'是什麼意思(一個例子會很好),但是...在SQL語句中,您可以多次定義同一列並指定列名的別名。
事情是這樣的:
SELECT *, [this_is_a_really_bad_name] as myNewName FROM MyTable
假設表MyTable
有設計很差列this_is_a_really_bad_name
,您現在可以通過它的舊名稱是指該列或myNewName
那是你正在嘗試實現?
您是否有能力使用視圖而不是表格,或者將視圖名稱的表名稱切換爲非啓動器? – 2013-03-14 20:39:33
是的,使用視圖來支持遺留代碼也是我的第一個想法。隨着時間的推移,它會給你時間將代碼轉換到新表。 – Perception 2013-03-14 20:40:31
國際海事組織,如果你必須在你的查詢中使用別名,但我懷疑能夠通過2個名稱調用一個列將會給可能已經令人困惑的情況添加_more_混淆(是的,你可以使用觸發器等來保留另一列同步,但我作爲一個潛在的同伴編碼器emplore你保持清楚。不要讓我看看爲什麼一列改變小時) – Wrikken 2013-03-14 20:42:03