2013-03-14 30 views
0

在MySQL中有一種方法可以讓一列只是對同一張表上另一列的引用嗎?在MySQL中有一種方法可以讓一列只是對同一個表上另一列的引用嗎?

我正在處理一個非常老的MySQL數據庫,它沒有命名約定。我不能只重命名列,因爲這會破壞很多代碼。所以我認爲如果我可以將一個「快捷欄」添加到命名不佳的欄目然後可以互換地使用它們,那將會很酷。

+1

您是否有能力使用視圖而不是表格,或者將視圖名稱的表名稱切換爲非啓動器? – 2013-03-14 20:39:33

+0

是的,使用視圖來支持遺留代碼也是我的第一個想法。隨着時間的推移,它會給你時間將代碼轉換到新表。 – Perception 2013-03-14 20:40:31

+0

國際海事組織,如果你必須在你的查詢中使用別名,但我懷疑能夠通過2個名稱調用一個列將會給可能已經令人困惑的情況添加_more_混淆(是的,你可以使用觸發器等來保留另一列同步,但我作爲一個潛在的同伴編碼器emplore你保持清楚。不要讓我看看爲什麼一列改變小時) – Wrikken 2013-03-14 20:42:03

回答

1

你考慮過creating a view嗎?

CREATE VIEW view_name 
AS SELECT *, bad_name as New_name 
FROM table 
+0

我想假設創建一個相同的列名視圖,然後換出表對於使用它的ASP.NET堆來說,那麼我可以改變列名......這聽起來很合理嗎? – 0x4f3759df 2013-03-14 21:47:06

+0

聽起來合乎邏輯,只要記住[視圖限制](http://dev.mysql.com/doc/refman/5.6/en/view-restrictions.html)即可。 – 2013-03-14 21:50:21

1

我不完全確定'reference'是什麼意思(一個例子會很好),但是...在SQL語句中,您可以多次定義同一列並指定列名的別名。

事情是這樣的:

SELECT *, [this_is_a_really_bad_name] as myNewName FROM MyTable 

假設表MyTable有設計很差列this_is_a_really_bad_name,您現在可以通過它的舊名稱是指該列或myNewName

那是你正在嘗試實現?

相關問題