2012-07-20 69 views
1

過去,我使用PHP腳本來更改所有字段的語言,但找不到任何將所有UNSIGNED MEDIUMINT切換爲UNSIGNED INT的內容。這可能嗎?我應該手動切換它們嗎? :○MySQL PHP更改表,將所有MEDIUMINT更改爲INT

原來MEDIUMINT太小了......所以我不得不改變很多領域/:

編輯: 感謝輸入,我可能只是做手工,現在我知道有沒有簡單的自動化的方式。如果有自動方式,我只是不想浪費我的時間手動更改100多個字段。

回答

1

MySQL沒有一種自動化的方式來表示「獲取X類型的所有列並將它們更改爲Y類型」。您可能能夠查詢information_schema數據庫以確定需要更改哪些列,然後可以根據該信息構建ALTER TABLE查詢。

具體來說,看看information_schema.columns表。

+0

使用這種加PHP的邏輯,我應該能夠編寫一個腳本來改變X型的所有字段中鍵入Y,對不對?哈哈,我認爲手動操作可能會更快一些。 – 2012-07-20 04:21:01

+0

是的,你絕對可以做到這一點。我沒有提供一些示例代碼的原因是因爲它可能需要至少10-15分鐘的研究,並且......是的......它可能會減少您查看模式並編寫一組手動查詢「ALTER TABLE」。 :)懶惰是程序員的主要優點,但是有一點讓人很難告訴計算機如何去做,而不是自己做。 – cdhowie 2012-07-20 04:22:31

0

必須在SQL中完成,因此如果在編寫腳本來完成它的情況下有意義,那就去做吧,但最有可能的是你會想要手動完成它。

既然您是從一個描述性較低的數據類型轉向描述性更強的數據類型,那麼您應該沒問題。

USINT的ALTER TABLE語法應該工作:

ALTER TABLE table_name MODIFY column_name INT UNSIGNED