过去,我使用PHP脚本来更改所有字段的语言,但找不到任何将所有UNSIGNED MEDIUMINT切换为UNSIGNED INT的内容。这可能吗?我应该手动切换它们吗? :○MySQL PHP更改表,将所有MEDIUMINT更改为INT
原来MEDIUMINT太小了......所以我不得不改变很多领域/:
编辑: 感谢输入,我可能只是做手工,现在我知道有没有简单的自动化的方式。如果有自动方式,我只是不想浪费我的时间手动更改100多个字段。
过去,我使用PHP脚本来更改所有字段的语言,但找不到任何将所有UNSIGNED MEDIUMINT切换为UNSIGNED INT的内容。这可能吗?我应该手动切换它们吗? :○MySQL PHP更改表,将所有MEDIUMINT更改为INT
原来MEDIUMINT太小了......所以我不得不改变很多领域/:
编辑: 感谢输入,我可能只是做手工,现在我知道有没有简单的自动化的方式。如果有自动方式,我只是不想浪费我的时间手动更改100多个字段。
MySQL没有一种自动化的方式来表示“获取X类型的所有列并将它们更改为Y类型”。您可能能够查询information_schema
数据库以确定需要更改哪些列,然后可以根据该信息构建ALTER TABLE
查询。
具体来说,看看information_schema.columns
表。
必须在SQL中完成,因此如果在编写脚本来完成它的情况下有意义,那就去做吧,但最有可能的是你会想要手动完成它。
既然您是从一个描述性较低的数据类型转向描述性更强的数据类型,那么您应该没问题。
USINT的ALTER TABLE语法应该工作:
ALTER TABLE table_name MODIFY column_name INT UNSIGNED
使用这种加PHP的逻辑,我应该能够编写一个脚本来改变X型的所有字段中键入Y,对不对?哈哈,我认为手动操作可能会更快一些。 – 2012-07-20 04:21:01
是的,你绝对可以做到这一点。我没有提供一些示例代码的原因是因为它可能需要至少10-15分钟的研究,并且......是的......它可能会减少您查看模式并编写一组手动查询“ALTER TABLE”。 :)懒惰是程序员的主要优点,但是有一点让人很难告诉计算机如何去做,而不是自己做。 – cdhowie 2012-07-20 04:22:31