По ошибке я создал свои таблицы с типом данных int(200)
, varchar(200)
, double(200,2)
в MySQL. Теперь я хочу изменить его на 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';
Решит ли это мою проблему и безопасно ли это делать?
Заранее спасибо.
int(200)
задает целое число с шириной отображения 200 цифр. Ширина отображения не влияет на диапазон значений, которые вы можете хранить в целом числе.double(200, 2)
означает хранить числа с плавающей запятой до 200 цифр, из которых 2 могут быть справа от десятичной точки. Это действительно влияет на то, что вы можете хранить в двойнике;double(5,0)
запрещает, например, 123456. Использование200
повсюду говорит мне, что вы не знаете, что делают эти значения, и вы не читали документы. - person Mike Sherrill 'Cat Recall'   schedule 06.04.2014