Rumah pangkalan data tutorial mysql mysql使用游标进行删除操作的存储过程_MySQL

mysql使用游标进行删除操作的存储过程_MySQL

Jun 01, 2016 pm 12:59 PM
kursor proses

BEGIN
DECLARE hprocessInstanceId bigint DEFAULT 0; -- 历史流程实例id
DECLARE hprocessInstanceIdStarttime CHAR default ''; -- 历史流程实例启动时间
DECLARE hprocessInstanceIdEndtime CHAR default ''; -- 历史流程实例结束时间

DECLARE hactinstId BIGINT default 0; -- 历史活动实例id

DECLARE htaskId BIGINT default 0; -- 历史人工任务id

DECLARE hvarId BIGINT default 0; -- 历史流程变量id

DECLARE rexecutionId bigint default 0; -- 正在执行流程实例id

DECLARE rvarId bigint default 0; -- 正在执行流程变量id

DECLARE rtaskId bigint default 0; -- 正在执行人工任务id

DECLARE rswinmlanceId bigint DEFAULT 0; -- 泳道id,为了删除partation表记录,本项目无记录

DECLARE processCompleteFlag int default 0; -- 流程是否结束标识
DECLARE taskCompleteFlag int default 0; -- 任务是否结束标识
DECLARE doneFlag INT DEFAULT 0; -- 完成标识,0:未完成;1:已完成
DECLARE notfound INT DEFAULT 0;-- 是否未找到数据 标记
-- 启动事物
-- START TRANSACTION;


/* 声明历史流程实例的游标 */
DECLARE hprocessInstanceRS CURSOR FOR SELECT dbid_,START_,END_ FROM jbpm4_hist_procinst where START_>=&#39;2014-0-0 0:0:0&#39; and START_<&#39;2015-0-0 0:0:0&#39;;

/* 声明历史活动实例的游标 */
DECLARE hactinstRS CURSOR FOR SELECT dbid_,HTASK_ FROM jbpm4_hist_actinst where HPROCI_=hprocessInstanceId;

/* 声明历史活动实例的游标 */
DECLARE htaskRS CURSOR FOR SELECT dbid_ FROM jbpm4_hist_task where DBID_=hactinstId;

/* 声明历史活动实例的游标 */
DECLARE hvarRS CURSOR FOR SELECT dbid_ FROM jbpm4_hist_var where HTASK_=rtaskId;

/** 声明正在执行流程实例的游标(历史表中因为各种原因未完成的) **/
DECLARE rexecutionRS CURSOR FOR SELECT dbid_ FROM jbpm4_execution where DBID_=hprocessInstanceId;

/** 声明正在执行流程变量的游标(只删除2014年条件下由于各种原因未完成的流程实例所对应的流程变量) */
DECLARE rvarRS CURSOR FOR SELECT dbid_ FROM jbpm4_variable where EXECUTION_=hprocessInstanceId;

/** 声明正在执行的人工任务的游标(只是2014年开始的流程实例所对应的) **/
DECLARE rtaskRS CURSOR FOR SELECT dbid_ FROM jbpm4_task where DBID_=rtaskId;

/** 声明泳道的结果集游标,为了删除paritation表,该项目没有记录,实际删除条数为0 **/
DECLARE rswinmlanceRS CURSOR FOR SELECT dbid_ FROM jbpm4_swimlane where dbid_=rswinmlanceId;

/* 异常处理 */
DECLARE CONTINUE HANDLER FOR SQLSTATE &#39;02000&#39; SET doneFlag = 1;

/** 删除s,使用嵌套循环..... **/

OPEN hprocessInstanceRS;
FETCH hprocessInstanceRS INTO hprocessInstanceId,hprocessInstanceIdStarttime,hprocessInstanceIdEndtime;-- 获取历史流程实例表的数据数据

REPEAT
IF hprocessInstanceIdEndtime=&#39;&#39; THEN
-- 没有结束,执行删除正在执行的流程实例表
/** 1.查询正在执行的流程实例记录s **/
SET rexecutionId=hprocessInstanceId; -- 未完成的流程实例与正在执行的流程实例id做对应
OPEN rexecutionRS;
FETCH rexecutionRS INTO rexecutionId;
REPEAT
/** 2.查询该流程实例下的所有正在执行的流程变量记录s 2**/
OPEN hvarRS;
FETCH hvarRS INTO rvarId;
REPEAT
/** 3.删除正在执行的流程变量所对应的人工任务记录s 3**/
delete from jbpm4_task where dbid_=rvarId;
/** 3.删除正在执行的流程变量所对应的人工任务记录e 3**/
delete from jbpm4_variable where dbid_=rvarId; -- 单条删除流程变量记录
FETCH hvarRS INTO rvarId;
UNTIL doneFlag END REPEAT;
CLOSE hvarRS;
/** 2.查询该流程实例下的所有正在执行的流程变量记录e 2**/
delete from jbpm4_execution where dbid_=rexecutionId; -- 单条删除流程对象记录
FETCH rexecutionRS INTO rexecutionId;
UNTIL doneFlag END REPEAT;
CLOSE rexecutionRS;

END IF;
/*** ======删除历史流程记录表相关数据===== **/
/** 1.查询活动实例表 s **/
OPEN hactinstRS;
FETCH hactinstRS INTO hactinstId,htaskId;
REPEAT
/** 2.查询历史人工活动表记录s **/
OPEN htaskRS;
FETCH htaskRS INTO htaskId;
REPEAT
/** 3.删除历史人工任务 **/
delete from jbpm4_hist_task where dbid_=htaskId;
FETCH htaskRS INTO htaskId;
UNTIL doneFlag END REPEAT;
CLOSE htaskRS;
/** 2.查询历史人工活动表记录s **/
FETCH hactinstRS INTO hactinstId,htaskId;
UNTIL doneFlag END REPEAT;
CLOSE hactinstRS;

/** 1.查询活动实例表 e **/
/*** ======删除历史流程记录表相关数据===== **/
/** 删除历史活动实例表 **/
delete from jbpm4_hist_actinst where HPROCI_=hprocessInstanceId;

SET doneFlag=0;
FETCH hprocessInstanceRS INTO hprocessInstanceId,hprocessInstanceIdStarttime,hprocessInstanceIdEndtime;-- 获取历史流程实例表的数据数据
UNTIL doneFlag END REPEAT;
CLOSE hprocessInstanceRS;
END
Salin selepas log masuk

使用嵌套之后,10万-百万条数据量删除非常慢,有什么解决方法没有?

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mengesyorkan penyelesaian kursor tetikus Windows 11 terbaik Mengesyorkan penyelesaian kursor tetikus Windows 11 terbaik Apr 23, 2023 am 09:52 AM

Windows 11 mempunyai jumlah pilihan penyesuaian yang kelihatan tidak terhad, daripada tetapan lalai kepada setiap apl pihak ketiga di Internet. Malah terdapat aplikasi yang boleh menukar rupa kursor tetikus anda. Mengubah suai kursor ialah cara terbaik untuk memberikan komputer anda rupa yang unik. Anda tidak perlu meletakkan penunjuk hitam putih yang sama pada setiap komputer. Namun begitu, anda tidak perlu memuat turun perisian untuk menukar rupa kursor anda. Bagaimana untuk menukar rupa kursor? Windows 11 menawarkan sejumlah kecil penyesuaian untuk kursor. Anda boleh menukar kursor dengan pergi ke Panel Kawalan dan memilih Pilihan Tetikus di sana. Tetingkap baharu yang dipanggil "Mouse Properties" akan muncul. Dalam sifat tetikus anda boleh menukar skema warna, saiz dan reka bentuk. Komputer anda secara semula jadi

Kembali ke Masa Depan Bagaimana untuk menghabiskan 19996-24 Kembali ke Masa Depan Bagaimana untuk menghabiskan 19996-24 Mar 02, 2024 pm 12:58 PM

Dalam Back to the Future 1999, pemain akan menghadapi banyak cabaran peringkat, dan setiap peringkat membawa cabaran yang sama sekali berbeza Sebagai salah satu peringkat, 6-24 pasti akan mempunyai ramai pemain yang memikirkannya, jadi berikut juga akan membawa kaedah pelepasan yang berkaitan. Kembali ke Masa Depan 19996-24 Kaedah Pembersihan 1. Selepas membakar tahap 30 dalam satu ayat, tunggu bos terpegun dan berikan dia pukulan berat. 2. Utamakan menggunakan C utama dan 142d untuk membakar dalam satu pusingan. 3. Pada pusingan kedua, gunakan kemahiran kecil pembantu dan pengasuh untuk membakar dan kad C utama untuk membina gerakan yang besar. 4. Bos akan terpegun dalam tiga pusingan, dan kemudian dia akan dipukul secara langsung dengan kemahiran bergerak dan kerosakan yang muktamadnya.

Wuthering WavesCara melepasi kesukaran Fantasyland 3 Wuthering WavesCara melepasi kesukaran Fantasyland 3 Feb 28, 2024 pm 10:19 PM

Kongsi cara melepasi tahap Ming Tide Fantasyland Difficulty 3. Ramai orang di Mingchao sedang menyelesaikan tahap 3 tanah fantasi ini sebenarnya agak sukar. Ramai rakan tidak tahu apa yang perlu dilakukan, tetapi jangan risau, editor akan membawanya kepada anda strategi di dalamnya, datang dan mencubanya. Bagaimana untuk melepasi Ringing Tide Fantasy Tahap Kesukaran 3? Memperkukuh kemahiran resonans watak Bell Turtle boleh meningkatkan kesan aerodinamik kita dengan cara ini, kecekapan serangan akan meningkat dan kerosakan akan lebih besar Penggantian kesan juga boleh ditukar. [Metafora] Pilih daripada tiga peringkat pertama: Matahari di Hutan: Ia boleh meningkatkan kerosakan Ji Yan dengan banyak Jika kemahiran digunakan lebih banyak kali, ia boleh menghasilkan kesan pukulan kritikal yang sangat baik. Peranti pelindung: Gunakan teknologi resonans

Terangkan proses pengisihan pemilihan dalam bahasa C Terangkan proses pengisihan pemilihan dalam bahasa C Sep 01, 2023 pm 01:57 PM

Isih pemilihan ialah algoritma agresif yang digunakan untuk mencari nombor terkecil daripada tatasusunan dan meletakkannya di kedudukan pertama. Tatasusunan seterusnya yang akan dilalui akan bermula pada indeks, berhampiran dengan tempat nombor terkecil diletakkan. Proses isihan pemilihan memilih elemen terkecil pertama dalam senarai elemen dan meletakkannya di kedudukan pertama. Ulangi operasi yang sama untuk elemen yang tinggal dalam senarai sehingga semua elemen diisih. Pertimbangkan senarai berikut - lulus pertama Sm=a[0]=30Sma[1]

Analisis terperinci masa yang diperlukan untuk naik taraf win10 Analisis terperinci masa yang diperlukan untuk naik taraf win10 Jan 10, 2024 am 12:00 AM

Ramai rakan ingin menaik taraf sistem komputer mereka kepada sistem win10, tetapi mereka tidak tahu berapa lama proses naik taraf akan diambil Hari ini saya telah membawakan anda pengenalan terperinci tentang masa yang diperlukan untuk mengemas kini kepada win10. Berapa lama masa yang diambil untuk mengemas kini kepada win10: 1. Ia berbeza dari kira-kira 40 minit hingga 2/3 jam bergantung pada prestasi mesin setiap pengguna. 2. Masa untuk mengkonfigurasi prestasi juga berbeza, yang berkait rapat dengan jumlah data dalam sistem lama. 3. Jika komputer mempunyai banyak perkara dan papan kekunci mekanikal, ia akan menjadi lebih perlahan. 4. Jika anda menaik taraf daripada win7/8 kepada win10, ia akan mengambil masa kira-kira satu setengah jam. 5. Simpan masa yang cukup lebih awal sebelum menaik taraf untuk membuat sandaran perkara penting untuk mengelakkan kerugian.

Bagaimana untuk menghabiskan sedikit pengembaraan dalam Dragon's Dogma 2 Bagaimana untuk menghabiskan sedikit pengembaraan dalam Dragon's Dogma 2 Mar 26, 2024 am 08:10 AM

Pengembaraan kecil adalah cabang awal dalam Dogma Naga, jadi bagaimanakah tugasan ini boleh diselesaikan? Pemain perlu pergi ke Mevi, menerima misi ini di kedai runcit di sini, dan membeli pil untuk melengkapkan cawangan ini Secara umumnya, kandungan terperinci boleh didapati dalam panduan grafik misi kecil ini dan lihat bersama. Bagaimana untuk bertahan dalam pengembaraan kecil dalam Dragon's Dogma 2: 1. Mula-mula, bawa kereta lembu ke utara Velenworth ke Meve. 2. Selepas tiba di Mevi, pergi ke alat peraga Lunnai untuk membawa anda, dan bercakap dengan NPC di sini untuk memulakan misi. 3. Kemudian pemain masuk ke kedai di belakang pintu, bercakap dengan pakcik di sini, dan membeli pil. 4. Selepas membeli, kembali ke pintu dan sediakan pil kepada NPC. 5. Seterusnya

Penjelasan terperinci proses penyusunan Golang Penjelasan terperinci proses penyusunan Golang Mar 07, 2024 am 09:24 AM

Penjelasan terperinci tentang proses penyusunan Golang Golang (juga dikenali sebagai Go) ialah bahasa pengaturcaraan yang dibangunkan oleh Google Ia mempunyai ciri-ciri kesederhanaan, kecekapan, keselarasan, dan lain-lain, jadi ia telah mendapat perhatian dan aplikasi yang meluas. Apabila pengaturcaraan dengan Golang, kompilasi merupakan langkah yang sangat penting Artikel ini akan memperkenalkan proses penyusunan Golang secara terperinci dan memberikan contoh kod khusus. 1. Proses penyusunan kod sumber Golang Analisis Leksikal (Analisis Leksikal) Langkah pertama dalam proses penyusunan ialah perkataan

Bagaimana untuk menyelesaikan percubaan meditasi dalam permainan mudah alih Swordsman dengan berkesan? Bagaimana untuk menyelesaikan percubaan meditasi dalam permainan mudah alih Swordsman dengan berkesan? Jan 30, 2024 pm 06:48 PM

Rakan-rakan, perkara yang dibawa oleh editor kepada anda hari ini ialah perkongsian strategi terperinci tentang percubaan meditasi permainan mudah alih Swordsman baharu. Seterusnya, mari kita lihat kaedah percubaan meditasi yang disusun oleh editor. Jika anda berminat dengan ini, pergi dan cuba dalam permainan. Cara untuk lulus percubaan meditasi dalam permainan mudah alih Swordsman yang baharu: Percubaan meditasi agak mencabar Berikut adalah beberapa petua. 1) Apabila mengumpul raksasa, cuba kekalkan beberapa gelombang pertama raksasa dalam keadaan kesihatan yang tinggal semasa gelombang terakhir. 2) Keadaan serangan pertama digunakan untuk menyegarkan gelombang kedua raksasa, dan bekerjasama dengan ledakan kemahiran anda sendiri untuk mengurangkan kesihatan gelombang pertama dan gelombang kedua raksasa dengan cepat. 3) Keadaan serangan kedua digunakan untuk menyegarkan gelombang terakhir raksasa dalam 10 saat terakhir Bersempena dengan gelombang kerosakan daripada kemahiran unik, skrin dibersihkan serta-merta.

See all articles