有没有办法更改数据库中具有特定数据类型的所有列?
我有一些列,他们的数据类型是datetime(6)
,如果有的话,我只希望它们是datatime
...没有6个小数。这可以在MySql中完成,而不必指定每一列吗?感谢
答案 0 :(得分:1)
您必须使用必要的语句创建文本字符串并将其保存在某个地方(我没有datetime(6)的列,但必须是这样的):
select
concat('ALTER TABLE ',
TABLE_SCHEMA,
'.',
table_name,
' CHANGE COLUMN ',
Column_name,
' ',
Column_name,
' DATETIME NULL DEFAULT NULL')
from
INFORMATION_SCHEMA.COLUMNS
where
table_schema = 'my_schema'
and data_type = 'datetime'
and character_maximum_length = 6 #may be numeric_precision, i don't know
使用exec语句后,像这样:
PREPARE stmt1 FROM 'ALTER TABLE ....';
EXECUTE stmt1