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