我有一个包含over hundret表的mysql数据库,每个数据库都包含很多列。
我的服务器有些日子的日期错了,现在很多数据都有错误的日期。
是否可以显示整个数据库的所有日期字段以进行更新。
但是也有一些像birthdate这样的字段不应该更新。
是否有任何可能性,或者我只能手动完成吗?
答案 0 :(得分:2)
正如@frlan建议的那样,你应该考虑一下这个更新的算法。
要获取“datetime”类型的所有表和列,您可以使用:
SELECT
TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
DATA_TYPE='datetime'
一种可能性是运行此查询,并在代码中,foreach这样的列,运行更新查询,例如: (假设scheme,table,column是来自先前查询的变量)
UPDATE scheme.table
SET column= ADDTIME(column, '36:00:00')
WHERE (column BETWEEN '2015-09-29 10:15:55' AND '2015-01-30 14:15:55')