0
有没有办法更改数据库中具有特定数据类型的所有列?更改所有列WHERE数据类型
我有一些列,他们的数据类型是datetime(6)
,如果有的话,我只是希望他们是datatime
......没有6个小数。这可能在MySql中做,而不必指定每一列?由于
有没有办法更改数据库中具有特定数据类型的所有列?更改所有列WHERE数据类型
我有一些列,他们的数据类型是datetime(6)
,如果有的话,我只是希望他们是datatime
......没有6个小数。这可能在MySql中做,而不必指定每一列?由于
必须创建文本字符串与必要的陈述,并将其保存在某个地方(我没有与日期时间(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
我不得不使用datetime_precision并在查询的末尾加上分号。但是,这很像一个魅力!谢谢 – raygo 2014-11-06 18:19:01
也可以使用修改功能..你可以看到更多的关于它的http://stackoverflow.com/questions/3773480/how-do-i-alter-table-column-datatype -on-more-1-column – 2014-11-06 16:15:54
我想在整个数据库中完成它。 – raygo 2014-11-06 16:17:33
然后,您需要编写一个脚本来抓取所有表的模式并生成ALTER TABLE查询。 – David162795 2014-11-06 16:27:15