过去,我使用 PHP 脚本来更改所有字段的语言,但我找不到将所有 UNSIGNED MEDIUMINT 切换为 UNSIGNED INT 的任何东西。这可能吗?我应该手动切换它们吗?:o
原来mediumint太小了......所以我必须改变很多领域/:
编辑:感谢您的输入,现在我知道没有简单的自动化方法可以手动完成。如果有自动化的方式,我只是不想浪费时间手动更改 100 多个字段。
MySQL 没有自动方式来表示“获取所有类型 X 的列并将它们更改为类型 Y”。您可以查询information_schema
数据库以确定需要更改哪些列,然后您可以ALTER TABLE
根据该信息构建查询。
具体来说,看一下information_schema.columns
表格。
您可以使用以下查询来查找mediumint
特定数据库中的所有列(具有各自的表名),然后迭代结果以生成并ALTER
以您选择的编程语言执行查询。
SELECT
table_name, column_name, numeric_precision, column_type
FROM
information_schema.columns
WHERE
TABLE_SCHEMA = 'DATABASE_NAME'
AND data_type = 'mediumint';
必须在 SQL 中完成,所以如果在你的情况下编写一个脚本来做这件事是有意义的,那就去做吧,但很可能你会想要手动做。
由于您要从描述性较差的数据类型转换为更具描述性的数据类型,所以应该没问题。
使用ALTER TABLE语法应该可以工作:
ALTER TABLE table_name MODIFY column_name INT UNSIGNED