Mysql動態sql語句,用當前時間做表名

2022-09-15 20:24:11 字數 659 閱讀 5616

在mysql備份操作中, 我們可能要使用表名和當前時間來做為備份表的名稱,但是mysql在儲存過程中不支援使用變數名來做表名或者列名。

例如:有乙個表」user「,我需要備份乙份,並且表名為「user_2017_02_21「。

在mysql5.1以上的版本中,prepare語句可以支援這樣的操作。

我們可以用set @var=...設定變數,然後用prepare stml from @var設定動態sql語句,最後用execute stml;執行語句。

set

@sqlstr

= concat('

create table user_

',date_format(curdate(),'

%y_%m_%d

'),'

like user');

prepare stmt1 from

@sqlstr

;execute stmt1 ;

set @sqlstr = concat('insert into user_',date_format(curdate(),'%y_%m_%d'),'select * from user');

prepare stmt1 from @sqlstr;

execute stmt1 ;

mysql動態sql語句

直接執行sql宣告 sqlstatement 例程 string mysql mysql create table employee emp id integer not null,dept id integer not null,emp fname char 10 not null,emp lna...

MYSQL 動態sql語句

直接執行sql宣告 sqlstatement 例程 stringmysql mysql create table employee emp id integer not null,dept id integer not null,emp fname char 10 not null,emp lnam...

用sql 語句對mysql的表動態管理

1.向mysql 新增乙個字段 alter table newtable add is send int 11 not null default 0 comment 是否已經傳送簡訊,已經傳送1 2.建立索引 1 普通索引 使用alter的方法建立索引 alter table table name ...