要建立64個表,聽到這一需求,必然要用儲存過程。直接上**:
delimiter $$
use `table`$$
drop procedure if exists `p`$$
create definer=`root`@`localhost` procedure `p`()
begin
declare i int;
declare table_name varchar(20);
declare table_pre varchar(20);
declare sql_text varchar(2000);
set i=1;
set table_name='';
set table_pre='lp_search_keywords_';
set sql_text='';
while i<65 do
if i<10 then set @table_name=concat(table_pre,'0',i);
else set @table_name=concat(table_pre,i);
end if;
set sql_text=concat('create table ',@table_name,'(id int)');
-- select sql_text;
set @sql_text=sql_text;
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
set i=i+1;
end while;
end$$
delimiter ;
如**所示,要注意幾個點:
1.在sql_text和table_name前加@,不然會找不到值,加上@後引數可以再過程外呼叫。
2.10一下的加0,不然1,10,mysql會判斷為重複。
3.execute後面的語句是preare之後的statement
儲存過程建立表
create or replace procedure test1 tname varchar2 is v createsql varchar2 400 v dropsql varchar2 100 v count number 9 begin v createsql create table tn...
MYSQL批量建立表的儲存過程
因為業務需要,建立了100個表,但是這些表的結構都是一樣的,作為程式設計師,就是要解決這種重複勞動。然而這種事情還要單獨寫個php指令碼的話太麻煩了吧,所以就乾脆學了一下直接用mysql儲存過程怎麼實現 首先是建立表的 lpad i 2,0 的作用 是將1,2,3這些數字轉化為 01 02 03 d...
MySQL建立儲存過程
在開發過程中,經常會遇到重複使用某乙個功能的情況,為此,mysql引入了儲存過程 儲存過程 就是一條或多條sql語句的集合,當對資料庫進行一系列複雜操作時,儲存過程可以將這些複雜操縱,封裝成乙個 塊,以便重複使用,大大減少資料庫開發人員的工作量 使用create procedure語句 create...