存儲過程循環插入數據
本文實例講述了MySQL實現創建存儲過程並循環添加記錄的方法。分享給大家供大家參考,具體如下:
先創建,然後調用:
--
創建存儲過程
DELIMITER;//
create
procere
myproc()
begin
declare
num
int;
set
num=1;
while
num
<=
24
do
insert
into
t_calendar_hour(hourlist)
values(num);
set
num=num+1;
end
while;
commit;
end;//
--
調用存儲過程
CALL
myproc();
PS:這里再為大家推薦2款常用的sql在線工具供大家參考使用(包含SQL語句用法說明):
SQL在線壓縮/格式化工具:
http://tools.jb51.net/code/sql_format_compress
SQL代碼在線格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat
更多關於MySQL相關內容感興趣的讀者可查看本站專題:《MySQL存儲過程技巧大全》、《MySQL常用函數大匯總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧匯總》及《MySQL資料庫鎖相關技巧匯總》
希望本文所述對大家MySQL資料庫計有所幫助。
『貳』 怎麼寫存儲過程,向資料庫中批量插入數據
用循環語句生成欄位值insert
SQL 如下:
createprocereInsertTest
as
begin
declare@iint
declare@svarchar(20)
set@i=1
while@i<=100
begin
select@s=cast(@iASvarchar(20))
insertintotest(A,B,C,D)VALUES('a'+@s,'b'+@s,'ccccc','ddddd')
SET@i=@i+1
end
end
『叄』 ORACLE存儲過程,循環插入數據後,更新數據來源表state欄位
下面例子中A表是數據源,B表是插入數據目標。
create or replace procere ... ...
cursor c1 is select * from A where... ...for update of 需要更新的列;
v c1%rowtype;
begin
open c1;
loop
fetch c1 into v;
exit when c1%notfound;
insert into B... ...;
update A set 需要更新列=... ... where current of c1;
... ...
end loop;
... ...
end;
『肆』 oracle存儲過程用fetch循環實現向一張表中插入不同數據
創建測試表
createtabletest
(touch_idvarchar2(20),
party_idvarchar2(20));
執行過程
declare
v_idint;
begin
v_id:=1;
whilev_id<=10--這個10設置為插入的次數
loop
insertintotestvalues('張三'||v_id,'partyid'||v_id);
v_id:=v_id+1;
endloop;
commit;
end;
結果
『伍』 mysql 存儲過程嵌套循環 第一次內循環能插入數據,之後不能成功插入數據,求解!!
1. 首先你應該看下循環條件是否已經走完,
2. 其次看所插數據是否滿足表中的欄位格式,再然後,看看SQL有沒有明顯的錯誤。
3. 如果檢查完還沒好,麻煩把SQL發我,我看下。
『陸』 oracle 用存儲過程向表插入數據的問題
實際上存儲過程向表中插入數據和sql執行的區別是不大的,只不過是存儲過程是用loop等循環插入,之後順序執行sql語句,不用命令行執行。
_data_4_pressure_3
is
--Result1VARCHAR2(50);
VAR_numnumber;
begin
VAR_num:=1;
while
VAR_num<1000000
LOOP
insertintorp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
selectto_date('2013/10/29','yyyy-mm-dd'),
round(dbms_random.value(1,300))||'省',
round(dbms_random.value(1,800))||'類型',
round(dbms_random.value(1,100))||'風險分值',
round(dbms_random.value(1,300))||'規則名稱',
'1'
fromal;
commit;
VAR_num:=VAR_num+1;
endloop;
endinsert_data_4_pressure_3;
『柒』 使用SQL SERVER 添加一個存儲過程 將數據循環插入到另一個伺服器
方案1:
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEPROCEDURE[InsertData]
AS
BEGIN
execsp_addlinkedserver'yuancheng','','SQLOLEDB','遠程IP'
execsp_addlinkedsrvlogin'yuancheng','false',null,'遠程資料庫帳號','遠程資料庫密碼'
select*intoyuancheng.資料庫名.dbo.t_testfromt_log
deletefromt_log
execsp_dropserver'yuancheng','droplogins'
END
方案2:
先開啟Ad Hoc Distributed Queries組件
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'AdHocDistributedQueries',1
reconfigure
然後創建存儲過程
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEPROCEDURE[InsertData]
AS
BEGIN
insertintoopenrowset('SQLOLEDB','遠程IP';'遠程帳號';'遠程密碼',資料庫名.dbo.t_test)select*fromt_log
deletefromt_log
END
GO
注意,如果遠程的t_test表中有主鍵自增ID,必須先取消此列的標識屬性,或者將除了主鍵列外的欄位名在insert語句中列出,不過這樣做就不能保證兩邊資料庫的ID一致了
『捌』 sql 資料庫循環插入100條記錄! 怎麼實現 是不是得用存儲過程啊
1、創建測試表,
create table test_loop(id varchar2(20),remark varchar2(20));
『玖』 資料庫怎麼循環插入數據
已經測試,創建並運行下面的存儲過程可以循環添加數據:
create procere dowhile()
begin
declare i int default 0;
start transaction;
while i<50 do
insert into users(userId,userName,userPwd) values(null,concat('s00',i),123456);
set i=i+1;
end while;
commit;
end;
delimiter;
『拾』 C#調用存儲過程,存數據到oracle資料庫,怎麼實現把多行數據循環插入到資料庫中。
用一個循環,循環的上限就是你要插入數據的條數。
然後在循環中這樣:
/* if bal<p_amount then
-- if bal_row.curbal < 0 then
budgetfail_flag:=p_budgetno||''||'該預算編號預算余額不夠!';
-- exit;
ELSE*/