【发布时间】:2014-05-18 01:38:27
【问题描述】:
我错误地在 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';
它能解决我的问题吗?这样做安全吗?
提前致谢。
【问题讨论】:
-
如果您可以更新 information_schema 视图,我会感到惊讶。但是 MySQL 不止一次让我感到惊讶。
-
首先有人请告诉我使用 int(200), varchar(200), double(200,2) 有错吗????????
-
int(200)指定显示宽度为 200 位的整数。显示宽度不会影响您可以存储在整数中的值的范围。double(200, 2)表示最多存储 200 位浮点数,其中 2 位可能在小数点右侧。这确实会影响您可以在双精度中存储的内容;double(5,0)不允许,例如 123456。到处使用200告诉我你不知道这些值的作用,而且你没有阅读文档。 -
那么 varchar(200) 呢???
-
你看到我上面写的结尾了吗? “到处使用 200 告诉我你不知道这些值的作用,而且你没有阅读文档。”如果您想留下好印象,请使用搜索引擎和read the docs。
标签: mysql sql information-schema