【问题标题】:rename table to 'NOW() + old_table_name'将表重命名为 'NOW() + old_table_name'
【发布时间】:2010-12-16 23:52:29
【问题描述】:

是否有可能在 MYSQL rename table() 中以某种方式使用 NOW() 函数或类似的东西?

我需要这个的原因是因为我们宁愿先重命名然后重命名为 old_date-table-was-taken-ouf-of-use_table_name,而不是直接删除旧表,所以当我们实际上删除它我们知道该表已经“不可用”多久了

【问题讨论】:

    标签: mysql rename


    【解决方案1】:

    您可以创建动态 SQL 语句并执行它:

    SET @tablename = 'MyTable';
    
    SELECT @query := CONCAT('RENAME TABLE `', @tablename, '` TO `', 
        CURDATE(), @tablename, '`');
    
    PREPARE STMT FROM @query;
    EXECUTE STMT;
    

    curdate() 函数以yyyy-MM-dd 格式的字符串形式返回当前日期。

    附:您不能从查询浏览器中执行这样的多行语句,但您可以将它们放入一个文件(例如名为 commandfile.sql)并像这样运行它们:

    mysql -u <user> -p<password> <dbname> < commandfile.sql
    

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 2023-03-02
      • 2011-05-15
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多