Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Datenbanken

GELÖST

Variablen als SQL Query in MySQL

Mitglied: core-moran

core-moran (Level 1) - Jetzt verbinden

31.01.2011, aktualisiert 14:48 Uhr, 3411 Aufrufe, 1 Kommentar

Nutzung des Inhaltes einer Variable als Teil eines Querys in MySQL.

Hallo,

ich möchte in MySQL eine Funktion erstellen, mit deren Hilfe ich Elemente zu einer Tabelle hinzufügen kann.
Das funktioniert sehr gut, ist nur futchtbar langsam bei vielen Elementen.

Deswegen hab ich mir überlegt, einen Puffer zu erzeugen (Session Variable) und diesen dann in einem Rutsch und in
einem Query hinzuzufügen, da das Ganze mindestens um den Faktor 1000 schneller ist.

Folgende 2 Funktionen habe ich hierfür implementiert.

1. Ein Element mit 2 Werten dem Puffer (einem String in dem ein Tel des finalen Queries aufgebaut wird) hinzufügen
2. Den Puffer als Query ausführen

Leider scheint MySQL die Session-Variable in der Flush-Funktion nicht korrekt auszuwerten.
Weiß jemand wie ich MySQL überreden kann, den Inhalt der Variable @elemenT_BUFFER als Teil des Querys zu interpretieren?

Der Fehlercode ist, dass die Anzahl der einzufügenden Spalten nicht mit den ausgewählten übereinstimmt.

Vielen Dank,
Eric


01.
CREATE PROCEDURE `add_element_to_buffer`( 
02.
     ELEMENT_VALUE_1 INT, 
03.
     ELEMENT_VALUE_2 INT) 
04.
BEGIN 
05.
    -- add needed commas to separate the elements in the string 
06.
    IF @ELEMENT_BUFFER <> "" THEN 
07.
        SET @ELEMENT_BUFFER = CONCAT_WS("", @ELEMENT_BUFFER, ", "); 
08.
    END IF; 
09.
     
10.
    -- add element to the buffer string  
11.
    -- in the format: "(value_1, value_2)" 
12.
    SET @ELEMENT_BUFFER = CONCAT_WS("", @ELEMENT_BUFFER, "(",  
13.
                                        ELEMENT_VALUE_1, ",", 
14.
                                        ELEMENT_VALUE_2, ")" ); 
15.
     
16.
END 
17.
$$ 
18.
 
19.
 
20.
CREATE PROCEDURE `flush_element_buffer`() 
21.
BEGIN 
22.
    -- add the elements from the buffer 
23.
     
24.
    INSERT INTO `elemt_element` ( 
25.
        `elemt_value_1`, 
26.
        `elemt_value_2`) 
27.
    VALUES ( 
28.
        @ELEMENT_BUFFER     -- <=== Hier ist das Problem 
29.
    ); 
30.
     
31.
    -- clear the buffer 
32.
    SET @ELEMENT_BUFFER = ""; 
33.
     
34.
END 
35.
$$ 
36.
 
Mitglied: core-moran
31.01.2011 um 15:27 Uhr
Hallo,

mit einer Änderung in der Flush Funktion funktioniert es:

01.
CREATE PROCEDURE `flush_element_buffer`() 
02.
BEGIN 
03.
       
04.
    set @qry = CONCAT('INSERT INTO `elemt_element` ', 
05.
                      '(`elemt_value_1`, `elemt_value_2`) ', 
06.
                      'VALUES ', 
07.
                      @ELEMENT_BUFFER, ';'); 
08.
 
09.
    -- prepare the statement 
10.
    PREPARE myStatement FROM @qry; 
11.
     
12.
    -- execute statement 
13.
    EXECUTE myStatement; 
14.
     
15.
    -- clear the buffer 
16.
    SET @ELEMENT_BUFFER = ''; 
17.
     
18.
END 
19.
 
Bitte warten ..
Ähnliche Inhalte
PHP
MySQL Query funktioniert nicht
gelöst Frage von JeeroyPHP1 Kommentar

Hallo, hätte eine Frage zu MySQL Abfragen. Zur Schilderung meines Problems: ich habe 2 Tabellen (person & stadt): Jetzt ...

PHP
MySQL in PHP mit Variablen
gelöst Frage von carl7nPHP10 Kommentare

Hallo, ich habe PHP-Grundkenntnisse, schaffe es aber nicht, nach meinen Vorstellungen ein paar kleine PHP-Scripts zusammen arbeiten zu lassen. ...

PHP
MySQL Update eines Datensatz mit Variable
gelöst Frage von Jens4everPHP4 Kommentare

Hallo zusammen, ich habe jetzt 2 h gesucht und versucht und komme gerade nicht weiter Ich habe eine Mail-Verifizierung ...

Netzwerkmanagement
MySQL-Variable max-connetction
gelöst Frage von piipapoNetzwerkmanagement2 Kommentare

Hallo liebe Community, für meine Projektarbeit zum Thema Monitoring bin ich auf ein Problem gestoßen, welches ich lösen konnte ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit29 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

SAN, NAS, DAS
Hilfe beim Einrichten eines Storages (SAN)
gelöst Frage von Vader666SAN, NAS, DAS15 Kommentare

Hallo Admins! Ich bin in einer kleineren Firma und hatte bisher mit dem Thema SAN nur in meiner Ausbildung ...

Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...