mysql - 如何在mysql中创建一个随机名称的表?

标签 mysql

我有一个更新表的过程。但是,我需要在每次更新之前备份该表。因此,我可以通过过程备份表的唯一方法是创建一个表并将所有信息从一个表插入到另一个表。

所以我需要做的是创建一个带有随机值的表名来区分不同的表。理想的解决方案是“New_Table_Name_TIMESTAMP”,因此将时间戳附加到字符串中。

我的问题是如何创建一个在其名称中添加时间戳的表 New_table_name_201412301044

我尝试过以下方法

DECLARE new_table varchar(100) DEFAULT '';
SET new_table = CONCAT('WORKFLOW_BU_', client_id_to_update, '_', unix_timestamp() );    

CREATE TABLE data_import.new_table LIKE development.inventory_engine;
INSERT INTO data_import.new_table
SELECT * FROM development.inventory_engine;

但它创建了一个名为“new_table”的表名称,而不是变量

谢谢

最佳答案

您将必须使用所谓的动态 SQL(也称为“服务器端准备好的语句”)来执行此操作。普通 SQL 禁止使用变量作为表或列的名称。

请参见此处。

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

关于mysql - 如何在mysql中创建一个随机名称的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845528/

相关文章:

javascript - 从 SQL 加载表

mysql - 选择 SUM() 查询的 MAX()

php - mySQL 按问题分组

mysql - 从mysql的大表中快速选择随机行

mysql - 谁能帮我找找2005年以前出版的书?

java.sql.Time 对象与 java.sql.Date 对象混淆

mysql - 我怎样才能选择性地加入

javascript - mysql中使用单引号时出错

php - 如何将 MySQL 选择查询值放入 PHP 变量中?

php - 如何通过检查ajax或php中的文本框值来更新数据库值