MySQL PHP alter table,将所有MEDIUMINT更改为INT
在过去,我使用PHP脚本来更改所有字段的语言,但是我找不到任何东西可以将所有未签名的MEDIUMINT转换为未签名的INT。这可能吗?我应该手动切换它们吗o 结果是mediumint太小了。。。因此,我必须更改许多字段/: 编辑:MySQL PHP alter table,将所有MEDIUMINT更改为INT,php,mysql,database,Php,Mysql,Database,在过去,我使用PHP脚本来更改所有字段的语言,但是我找不到任何东西可以将所有未签名的MEDIUMINT转换为未签名的INT。这可能吗?我应该手动切换它们吗o 结果是mediumint太小了。。。因此,我必须更改许多字段/: 编辑: 感谢您的输入,现在我知道没有简单的自动化方法,我可能只需要手动操作。如果有一种自动方式,我不想浪费时间手动更改100多个字段。MySQL没有一种自动方式说“将所有类型为X的列都更改为类型Y”。您可以查询信息\u模式数据库,找出需要更改的列,然后,您可以基于该信息构建A
感谢您的输入,现在我知道没有简单的自动化方法,我可能只需要手动操作。如果有一种自动方式,我不想浪费时间手动更改100多个字段。MySQL没有一种自动方式说“将所有类型为X的列都更改为类型Y”。您可以查询
信息\u模式
数据库,找出需要更改的列,然后,您可以基于该信息构建ALTER表
查询
具体来说,请查看
信息\u schema.columns
表。必须在SQL中完成,因此,如果在您的情况下编写脚本来完成这项工作是有意义的,请尝试,但很可能您希望手动完成
由于您要从描述性较低的数据类型转变为描述性较强的数据类型,所以应该可以
Usint语法应适用于:
ALTER TABLE table_name MODIFY column_name INT UNSIGNED
您可以使用下面的查询来查找特定数据库中的所有
mediumint
列(以及相应的表名),然后迭代结果以生成并执行所选编程语言中的ALTER
查询
SELECT
table_name, column_name, numeric_precision, column_type
FROM
information_schema.columns
WHERE
TABLE_SCHEMA = 'DATABASE_NAME'
AND data_type = 'mediumint';
使用这个加上PHP逻辑,我应该能够编写一个脚本,将所有x类型的字段更改为y类型,对吗?我想手动操作可能会快一点,哈哈。是的,你绝对可以这样做。我没有提供一些示例代码的原因是,它可能需要至少10-15分钟的研究,而且。。。是 啊查看模式并手工编写一组
altertable
查询可能需要更少的时间懒惰是程序员的主要美德,但有时告诉计算机如何做这项工作比自己做更难。