繁体   English   中英

更改所有列的WHERE数据类型

[英]Alter all columns WHERE datatype

有没有办法更改数据库中具有特定数据类型的所有列?

我有一些列,其数据类型为datetime(6) ,如果有的话,我只是希望它们为datatime ...而没有6 datatime数。 是否可以在MySql中执行而不必指定每一列? 谢谢

您必须使用必要的语句创建文本字符串并将其保存在某处(我没有带有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM