2012-07-20 110 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