2013-07-30 33 views
1

我正在使用Mysql2來處理外部數據庫,我沒有使用ActiveRecord。如何知道列數據類型?

database = Mysql2::Client.new(:host => ....) 
@table = database.query("select * from ....") 

我不知道列名,但它提供了一個散列,每列都有列名。

但這仍然是不夠的,我想知道列的數據類型,它是一個varcharintdatetime和特別是如果它是一個blob

有沒有辦法我可以知道表的列的數據類型?

+3

執行查詢'DESCRIBE tablename'。 Rails可能有一些包裝方法,但這是如何讓MySQL告訴你一個表。 –

+0

嗯,它會工作,我只是在尋找一個'紅寶石方'的解決方案,並沒有考慮'mysql side',豎起大拇指 你可以回答它投票 – AMTourky

+1

也許這個以前的mysql問題可以幫助你: http://stackoverflow.com/questions/1215368/how-to-get-the-mysql-table-columns-data-type – Svennisen

回答

-1

如果你想知道類型的鐵軌(意思是,通過ActiveRecord::ConnectionAdapters)所看到,你可以使用的方法column你的模型類

例爲用戶模式:User.columns。在您的控制檯中試用它。

要獲得所有列的類型,你可以做User.columns.map{|col| col.type}

+0

它不是一個模型,它只是一個連接到一個單獨的數據庫 它不是軌道模型來自的DB – AMTourky

相關問題