2015-03-02 51 views
0

我想從tinyint(1)轉換一個mysql列,我只是作爲布爾值來使用時間戳,但是我想通過在行中插入日期來保留現有數據。Mysql tinyint到datestamp

那麼我可以在考慮現有數據的同時更改表格列嗎?

我可以通過添加另一列並移動數據來完成此操作,但是我可以在alter query中執行此操作嗎?

回答

0

如果我明白你正確的,這樣的事情應該工作

ALTER TABLE "<table>" ADD COLUMN "<timestampcolumn>" datetime; 
UPDATE "<table>" SET "<timestampcolumn>" = now() WHERE "<tinyintcolumn>" = 1; 
ALTER TABLE "<table>" DROP COLUMN "<tinyintcolumn>" 

,你不能保存時間戳爲TINYINT是很重要的,所以你必須添加一個新列的時間戳。

+0

感謝您的答覆,但我試圖將列數據類型從tinyint更改爲時間戳。 – ShiftyThomas 2015-03-03 13:24:19

+0

這是不可能的。你必須添加一個新的列,填充它,然後刪除舊的。 – frlan 2015-03-03 13:25:38

+0

剛剛更新的答案應該如何工作 – frlan 2015-03-03 13:33:32