MySQL儲存過程複製表資料到另一表中

2021-08-20 13:29:40 字數 2478 閱讀 7364

1、源表資訊:

create table `aa` (

`id` int(11) not null auto_increment,

`b1` int(11) default null,

`abc` int(200) default null,

primary key (`id`),

unique key `b` (`b1`)

) engine=innodb auto_increment=9 default charset=utf8mb4 collate=utf8mb4_unicode_ci

2、目標表

create table `test` (

`auto_id` int(11) not null auto_increment,

`a1` int(10) not null,

`a2` int(11) default null,

`a3` int(11) default null,

primary key (`auto_id`)

) engine=innodb auto_increment=7 default charset=utf8 comment='測試表'

3、儲存過實現:注意格式

delimiter $$

drop procedure if exists `record_timestamp_deal`$$

#建立儲存過程

create procedure record_timestamp_deal()

begin

#定義獲取值儲存的變數

declare a4 int;

declare a5 int;

declare a6 int;

declare is_done int default 0;

declare cur cursor for select id,b1,abc from aa;

#異常處理

declare continue handler for sqlstate '02000' set is_done =1;

open cur;

#取出游標值至定義的變數中

fetch next from cur into a4,a5,a6;

repeat

if not is_done then 

insert into test(a1,a2,a3)values(a4,a5,a6);       

end if ;

#重新抓取資料進入迴圈

fetch next from cur into a4,a5,a6;

#結束迴圈

until is_done end repeat ;

#關閉游標

close cur ;

end $$

##呼叫儲存過程

call record_timestamp_deal

mysql複製表資料 MySQL 複製表結構

介紹 有時候我們需要原封不動的複製一張表的表結構來生成一張新錶,mysql提供了兩種便捷的方法。例 create tabletb base idint not null primary key,namevarchar 10 keyix name name engine myisam charset ...

MySQL 複製表結構 資料

like方法複製生成乙個新錶,包括其備註 索引 主鍵外來鍵 儲存引擎等 create table ifnot exists like table2 like table2 select方法只複製字段屬性,原表的主鍵 索引 表備註 儲存引擎都沒有複製 create table ifnot exists...

MySQL複製表資料到新錶的方法

1.mysql複製表結構及資料到新錶 create table 新錶 select from 舊表 2.只複製表結構到新錶 create table 新錶 select from 舊表 where 1 2 即 讓where條件不成立.方法二 低版本的mysql不支援,mysql4.0.25 不支援,...