Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in die Funktionen und Eigenschaften von Cursorn

rayZ
Freigeben: 2017-07-26 09:24:27
Original
3720 Leute haben es durchsucht

Funktion und Attribute des Cursors

Die Funktion des Cursors besteht darin, die von der Abfragedatenbank zurückgegebenen Datensätze zu durchlaufen, um entsprechende Vorgänge auszuführen. Der Cursor verfügt über die folgenden Attribute :

a. Der Cursor ist schreibgeschützt, das heißt, er kann nicht aktualisiert werden.

Der Cursor kann nicht gescrollt werden, das heißt, er kann nur in eine Richtung bewegt werden. und kann nicht beliebig zwischen Datensätzen vor- oder zurückspringen, bestimmte Datensätze nicht überspringen; c.

Implementieren Sie die Funktion, um die relativ große Datenmenge nt_m_gpsdata (3000 W+) nach Datum in nt_m_gpsdata20170501, nt_m_gpsdata20170502, nt_m_gpsdata20170503 usw. aufzuteilen.


VERFAHREN ERSTELLEN. `neu _proc edure` ()

BEGIN

--Es müssen Variablen definiert werden, um Cursordaten zu empfangen

DECLARE a CHAR(16);

--Definieren Sie den Namen der neuen Tabelle

DECLARE tbname CHAR(30);

-- Variablen zum Speichern von SQL-Anweisungen definieren

DECLARE sqlstr1 varchar(300);

DECLARE sqlstr2 varchar( 300);

-- Endflag für das Durchlaufen von Daten

DECLARE done INT DEFAULT FALSE;

--Cursor definieren

DECLARE cur CURSOR FOR select DISTINCT DATE_FORMAT(ctime,'% Y%m%d') as ctime from nt_m_gpsdata;

-- Binden Sie das End-Flag an den Cursor

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- Cursor öffnen

OPEN cur;

-- Schleife starten

read_loop: LOOP

-- Extrahieren Sie die Daten in der Cursor, hier gibt es nur eines. Das Gleiche gilt für mehrere Wörter;

LEAVE read_loop;

END IF;

– Hier führen Sie die Schleifenereignisse aus, die Sie ausführen möchten

set tbname=CONCAT("nt_m_gpsdata", a);

– tbname auswählen;

– Kopieren Sie die Tabellenstruktur, erstellen Sie eine neue Tabelle, wählen Sie * aus alter Tabelle aus, wobei 1=2. Es können nur Tabellenfelder und Attribute wie „Feld“ kopiert werden Primärschlüssel, automatische Inkrementierung und Nicht-Null können nicht kopiert werden. Tabelle erstellen. Neue Tabelle wie alte Tabelle können kopiert werden. Feldattribute

END LOOP;

-- Cursor schließen

CLOSE cur;

END
    set sqlstr1 = CONCAT("create table ",tbname," like nt_m_gpsdata");
        set sqlstr2 = CONCAT("insert into ",tbname," select * from nt_m_gpsdata where deleted=0 and DATE_FORMAT(ctime,'%Y%m%d')='",a,"'");
        set @firstsql = sqlstr1;
        PREPARE stmt1 FROM @firstsql;
        EXECUTE stmt1;
        DEALLOCATE PREPARE stmt1;
        set @secondsql = sqlstr2;
        PREPARE stmt2 FROM @secondsql;
        EXECUTE stmt2;
        DEALLOCATE PREPARE stmt2;
Nach dem Login kopieren

Später wurde dies Die Tabellenaufteilungsstrategie wird auf ein Oracle-Projekt angewendet und der Code wird angehängt

Das obige ist der detaillierte Inhalt vonEinführung in die Funktionen und Eigenschaften von Cursorn. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!