MySQL 4.0.21 -> Mehrere Datensätze mit einem Insert Statement?

Mik3e

Erfahrenes Mitglied
Hi,

Kurze Frage:
Kennt jemand von Euch eine möglichkeit mit einem einzigen INSERT Statement mehrere Datensätze anzulegen?

Normal:
INSERT INTO
table_x
(a,b,c)
VALUES
(1,2,3)

Was ich benötige (PSEUDOCODE, das "+" ist hier symbolisch zu verstehen):
INSERT INTO
table_x
(a,b,c)
VALUES
(1,2,3) +
(4,5,6) +
(7,8,9) +


Das ganze hat den hintergrund, dass über ne For-Schleife mehrere Datensätze angelegt werdenn. Derzeit wird bei jedem Durchlauf ein INSERT ausgeführt. Für die Performance ist es klarerweise besser, wenn der QUERY in der Schleife erzeugt und dann nur ein INSERT Statement ausgeführt wird.

Leider kenne ich keine Möglichkeit um das mit einem Statement abzufrühstücken. (Oder ich steh komplett auf der Leitung). Vielleicht habt Ihr ne Idee

Danke & LG
Mike
 
Mehre Einträge in einem Insert geht nur, wenn Du statt Values mit SELECT arbeitest (aber das kommt bei Dir ja nicht in Frage).

Vorschlag:
Erzeuge doch zunächst ein Script (mehrere Insert-Befehle hintereinander jeweils mit ; abgeschlossen)

Nach dem Schleifendurchlauf führst du das script einmal aus.
vop
 
Hi,

Ja, das ist eine Lösung, die mir aber Performancetechnisch nichts bringt (es geht um eine Performancesteigerung auf der MySQL Maschine, nicht dem Webserver)...
Wenn ich nun so wie vorgeschlagen die INSERTS zusammenfasse, wird vom MySQL Server ja dennoch jedes Statement einzeln ausgeführt.

Danke dennoch, habe sowas schon vermutet :eek:))
 
Du könnstest allerdings die Einträge in eine Datei schreiben und diese dann mit LOAD DATA
schnell einlesen
vop
 
Geht leider auch nicht...
Und würde das System wahrscheinlich noch mehr ausbremsen (File-Zugriffe sind ja bekanntlich nie sonderlich flott unterwegs :eek:)
 
Natürlich kann man mit einem INSERT mehrere Datensätze anlegen. Und Mik3e war schon verdammt nah dran nur ein , statt dem +:
Code:
INSERT INTO table_x
  (a,b,c)
VALUES
  (1,2,3),
  (4,5,6),
  (7,8,9)
Das hat natürlich irgendwo seine Grenzen...

Martin
 
Tatsächlich Habe ich nirgendwo in der Doku gefunden..
Werde es jedenfalls gleich versuchen :eek:)

Danke & LG
Mike
 
Wie geht das ganze wenn ich von templates arrays mehrere Daten in die Datenbank bringen will mit 1x = 10 oder so?

MfG SnopDOC
 
Hallo,

ich brauche eine Funktion, oder ähnliches,
welche mir Zufallsdaten in eine MSSQL-Datenbank schreibt.

Beispiel:
Die Funktion heißt 'tabelle_fuettern' und hat einen Parameter (die Anzahl der Datensätze)
Die Tabelle heißt 'tabelle' (Spalte1, Spalte2, Spalte3, Spalte4)

SELECT tabelle_fuettern (1000000)

nun soll die Funktion eine Millionen mal:
INSERT INTO tabelle (Spalte1, Spalte2, Spalte3, Spalte4) SELECT 'Wert1', 'Wert2', 'Wert3', 'Wert4';
ausführen.


Geht soetwas?
Kann mir jemand helfen?

MfG
treFFnix
 
Im Titel steht MySQL, im Text MSSQL
Was jetzt?

Nachtrag:
Ups, ist ja ein alter Thread und mMn ungeeignet für deine Frage
 
Zurück