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

gelöst Variablen als SQL Query in MySQL

Mitglied: core-moran

core-moran (Level 1) - Jetzt verbinden

31.01.2011, aktualisiert 14:48 Uhr, 3485 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
Datenbanken
SQL-Query - Like Operator - Usereingabe
gelöst Frage von SchelinhoDatenbanken4 Kommentare

Hallo! Ich habe ein SQL-Script, welches als solches auf der Datenbank im SQL-Developer funktioniert. Mir geht es um eine ...

Datenbanken

MS SQL Server - SQL Query zum vereinigen von Datensätzen

gelöst Frage von 123-PaterDatenbanken7 Kommentare

Kleine Knobelaufgabe: Ich möchte im M$ SQL Server eine View erzeugen, die mir aus zwei Ergebnisdatensätzen einen Datensatz erzeugt. ...

Batch & Shell

Bash: SQL Query (Wenn count 1 dann .)

gelöst Frage von nepixlBatch & Shell8 Kommentare

Hallo Gentlemen, derzeit verzweifel ich etwas an einem simplen Bashscript. Scheinbar kann ichs der Bash-Zicke nicht richtig servieren, auch ...

Datenbanken

SQL-Statement in Excel .dqy Query - (Zeitrahmen) funktioniert nicht ?

gelöst Frage von SchelinhoDatenbanken6 Kommentare

Hallo zusammen, folgendes Thema: ich habe ein SQL-Statement mit Variablen Usereingaben, welches im PL/SQL-Developer auch tadellos funktioniert. Die Variable ...

Neue Wissensbeiträge
Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 1 TagViren und Trojaner2 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 1 TagWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Humor (lol)
Wenn hacken nach hinten los geht
Information von em-pie vor 2 TagenHumor (lol)5 Kommentare

Moin, weil heute Freitag ist, nachfolgender kurzer Artikel zum schmunzeln:) l+f: NULL ist ein notorischer Falschparker

Windows Update
Windows: August 2019 Patchday-Probleme
Information von kgborn vor 3 TagenWindows Update3 Kommentare

Ich kippe mal einige kurze Informationen hier rein - vielleicht hilft es Betroffenen. Die August 2019-Updates für Windows haben ...

Heiß diskutierte Inhalte
Switche und Hubs
Glasfaser-Anschluss Telekom muss verteilt werden
Frage von cansoniSwitche und Hubs28 Kommentare

Vorweg: Bin nur Anwender und kein Experte Die Situation: Der Vermieter stellt einen Glasfaseranschluss in der Wohnung bereit. Wir ...

Ubuntu
Download manchmal langsam oder komplette Abbrüche bzw. Videos spielen nicht bis zum Schluss
Frage von stefanstpUbuntu17 Kommentare

Immer wieder berichten unsere Kunden, dass Downloads abbrechen oder super langsam sind oder Videos nicht abgespielt werden können bzw. ...

Hyper-V
VMs von Hyper-V auf externer Festplatte
Frage von SnowbirdHyper-V17 Kommentare

Hallo, ich möchte gerne von VirtualBox auf Hyper-V umsteigen und würde auch gerne weiterhin meine VMs auf der externen ...

Festplatten, SSD, Raid
SSDs durch Lagerung ohne Strom nach 6 Monaten defekt?!?
gelöst Frage von GlobetrotterFestplatten, SSD, Raid15 Kommentare

Moin Gemeinde Ich hatte gerade nen Trauerspiel Habe hier etliche NAS-Geräte herumfahren welche ich mal auf die Seite gelegt ...