【问题标题】:Mysql add default value for all date fieldMysql为所有日期字段添加默认值
【发布时间】:2013-02-27 22:02:30
【问题描述】:

我必须更改数据库中所有日期字段的默认值。 你知道如何快速做到这一点吗?

谢谢

【问题讨论】:

  • 更新INFORMATION_SCHEMA db中的表定义。
  • 是要更新现有值还是需要在插入行时设置默认值?
  • @Marc B:information_schema 表是只读的(实际上,它们甚至不是表而是视图)
  • 啊,是的……确实如此。但至少您可以查询它以查找数据库中的所有日期/日期时间字段,然后分别更改它们。

标签: mysql alter


【解决方案1】:

尝试类似的方法:

SELECT
    CONCAT('ALTER TABLE `', TABLES.TABLE_NAME, '` ALTER COLUMN `', COLUMNS.COLUMN_NAME, '` SET DEFAULT ''2013-02-27'';')

    INTO OUTFILE 'C:\\queries.sql'

    FROM TABLES
        INNER JOIN COLUMNS
            ON COLUMNS.TABLE_SCHEMA = TABLES.TABLE_SCHEMA
            AND COLUMNS.TABLE_NAME = TABLES.TABLE_NAME

    WHERE
        TABLES.TABLE_TYPE = 'BASE TABLE' 
        AND TABLES.table_schema = 'your_database'
        AND data_type = 'date';

你必须适应

  • outfile 的路径(此处为 Windows 服务器上的 C:/queries.sql...)
  • 您的数据库名称
  • 显然是您将设置的默认值(此处为 2013-02-27)。

然后,您必须在目标数据库上运行输出脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 2016-09-22
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多