當前位置:首頁 » 存儲配置 » 存儲過程清空表數據

存儲過程清空表數據

發布時間: 2023-01-05 19:38:49

A. Mysql表通過存儲過程刪除生產表數據

在建設實時數倉的過程中,用到了Mysql存放增量的結果數據,所以需要定時清理歷史數據,為了避免影響的線上的實時數據寫入,採用了按照最後更改時間,分段刪除的方法。對應的存儲過程如下:

B. oracle中通過存儲過程對表數據進行定時清理

使用pl/sql developer 可以很容易添加定時執行的Oracle存儲過程
一個例子:
Sql代碼
begin
sys.dbms_job.submit(job => :job,
what => 'RATING.JOB_PRESS;',
next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
interval => 'TRUNC(SYSDATE+1)');
sys.dbms_job.broken(job => :job,
broken => true,
next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
commit;
end;

C. 如何在oracle中寫一個存儲過程,它的作用是清空emp表中的數據

使用動態sql,過程如下:
CREATE OR REPLACE PROCEDURE Prc_Delete_Emp IS
Lv_Sql VARCHAR2(200);
BEGIN
Lv_Sql := 'delete emp';
EXECUTE IMMEDIATE Lv_Sql;
COMMIT;
END;

D. mysql調用存儲過程刪除數據

創建:
delimiter //
create procere my_add(IN a int, IN b int, OUT c int)
begin
if a is null then set a = 0;
end if;
if b is null then set b = 0;
end if;
set c = a + b;
end;
//
delimiter ;

查看:

方法一:(直接查詢,比較實用,查看當前自定義的存儲過程)
select `specific_name` from mysql.proc where `db` = 'your_db_name' and `type` = 'procere'
方法二:(查看資料庫里所有存儲過程+內容)
show procere status;
方法三:(查看當前資料庫里存儲過程列表)
select specific_name from mysql.proc ;
方法四:(查看某一個存儲過程的具體內容)
select body from mysql.proc where specific_name = 'your_proc_name';
查看存儲過程或函數的創建代碼 :
show create procere your_proc_name;
show create function your_func_name;

調用:
mysql> set @a = 10;
Query OK, 0 rows affected (0.00 sec)

mysql> set @b = 20;
Query OK, 0 rows affected (0.00 sec)

mysql> set @c = 0;
Query OK, 0 rows affected (0.00 sec)

mysql>select @c;
+------+
| @c |
+------+
| 0 |
+------+

mysql> call my_add(@a, @b, @c);
Query OK, 0 rows affected (0.00 sec)

mysql> select @a, @b, @c;
+------+------+------+
| @a | @b | @c |
+------+------+------+
| 10 | 20 | 30 |
+------+------+------+
1 row in set (0.00 sec)

刪除
drop procere your_proc_name;

E. 怎麼樣用oracle存儲過程循環清空多張的表數據

你這多張表要有某種聯系。
比如說表名按照日期取名:
這樣可以按照這種規律將表名作為參數傳入到存儲過程中去。
過程中有條件,循環語句來控制。
你試試看。
如果有問題請詳細說明。

F. sqlserver存儲過程如何定期刪除表中的數據 求代碼

方法一:
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句:
update table set columns=0 where id=1

--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排為一天一次

然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行
設置方法: 我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

G. 清空資料庫所有表,所有存儲過程SQL語句

近來發現資料庫過大,空間不足,因此打算將資料庫的數據進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用SQL語句一次清空所有數據.找到了三種方法進行清空.使用的資料庫為MS SQL SERVER.
1.搜索出所有表名,構造為一條SQL語句

declare @trun_name varchar(8000)
set @trun_name=''
select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0
exec (@trun_name)

該方法適合表不是非常多的情況,否則表數量過多,超過字元串的長度,不能進行完全清理.
2.利用游標清理所有表

declare @trun_name varchar(50)
declare name_cursor cursor for
select 'truncate table ' + name from sysobjects where xtype='U' and status > 0
open name_cursor
fetch next from name_cursor into @trun_name
while @@FETCH_STATUS = 0
begin
exec (@trun_name)
print 'truncated table ' + @trun_name
fetch next from name_cursor into @trun_name
end
close name_cursor
deallocate name_cursor

這是我自己構造的,可以做為存儲過程調用, 能夠一次清空所有表的數據,並且還可以進行有選擇的清空表.
3.利用微軟未公開的存儲過程

exec sp_msforeachtable "truncate table ?"

該方法可以一次清空所有表,但不能加過濾條件.

H. 如何使用存儲過程語句刪除表中的一行數據

create
proc
存儲過程名
@id
int
as
delete
from
表名
where
id=@id
go
exec
存儲過程名
1
--這樣就調用存儲過程從表中刪除了id記錄為1的記錄

I. sql 存儲過程中如何清空一個表數據

delete from table_name

truncate table table_name

熱點內容
龍芯機器可以cef編譯嗎 發布:2024-05-10 22:40:48 瀏覽:156
犀牛如何編程 發布:2024-05-10 22:35:54 瀏覽:305
php類遞歸 發布:2024-05-10 22:33:55 瀏覽:5
android連接ubuntu 發布:2024-05-10 22:30:15 瀏覽:405
androidapk簽名獲取 發布:2024-05-10 21:53:09 瀏覽:145
21天學好c語言 發布:2024-05-10 21:40:43 瀏覽:651
sqlserver資料庫名 發布:2024-05-10 21:30:04 瀏覽:189
密碼在什麼地方查看 發布:2024-05-10 20:57:08 瀏覽:976
android中的menu 發布:2024-05-10 20:56:15 瀏覽:964
php支付寶源碼 發布:2024-05-10 20:39:29 瀏覽:575