我错误地在MySQL中创建了数据类型为int(200)
,varchar(200)
,double(200,2)
的表格。现在我想将其更改为int(20)
,varchar(20)
,double(20,2)
。由于数据库非常大,逐个更改它们是一项非常非常困难的任务。我不确定,但我认为遵循SQL可以做到 -
UPDATE INFORMATION_SCHEMA.COLUMNS
SET COLUMN_TYPE='INT(20)'
WHERE COLUMN_TYPE='INT(200)'
AND TABLE_SCHEMA = 'DATABASE_NAME';
它会解决我的问题并且安全吗。
提前致谢。
答案 0 :(得分:0)
ALTER TABLE table_name CHANGE collumn_Name1 collumn_Name2 INT(20);
它应该有用。
注意:如果您不想更改其名称,则Collumn_name2是新的Collumn名称,然后键入相同的collumn名称。
答案 1 :(得分:0)
所以伙计们
我不会改变我的数据库中的任何内容,因为在阅读文档之后我认为使用int(200),double(200,2),varchar(200)没有任何错误,它将不会根据我的要求,我有任何麻烦。
我还想为原来的问题添加一个解决方案 -
我们可以编写一个php脚本来改变整个数据库中的数据类型以及以下代码 -
$loop2=$con->query("SELECT COLUMN_NAME, TABLE_NAME, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'database_name' AND COLUMN_TYPE = 'int(200)'");
while ($row2 =mysqli_fetch_array($loop2))
{
$row1=$con->query("alter table database_name.$row2[TABLE_NAME] change column $row2[COLUMN_NAME] $row2[COLUMN_NAME] int(20) default '$row2[COLUMN_DEFAULT]'");
}