Benutzer-Werkzeuge

Webseiten-Werkzeuge


insertintoselect

INSERT INTO SELECT

Mit dem SQL-Statement „INSERT INTO SELECT“ können einzelne Spalten oder ein gesamter Datensatz aus einer SELECT-Anweisung als neuer Datensatz hinzugefügt werden.

Beispiel 1:

Alle Spalten sollen in den neuen Datensatz eingefügt werden (Datensatz kopieren):

INSERT INTO USER SELECT * FROM USER WHERE id = 314

Beispiel 2:

Zwei von drei Spalten der Tabelle „neighborhood“ sollen mit Inhalten aus der Tabelle „users“ gefüllt werden:

	INSERT INTO neighborhood 
		SELECT :id, id, distance
		FROM ( SELECT id, ST_Distance ( ST_GeogFromText( :basis_1 ),
			users.basis_1 ) AS distance FROM users WHERE lastlogin + INTERVAL '7 days' > now() ) AS users
		WHERE distance > 0 ORDER BY distance LIMIT 500";
  • Spalte :id ist ein binding Parameter, der, genau wie :Basis_1, beim Aufruf an SQL übergeben wird
  • Spalte id wird im Unter-Select ermittelt
  • Spalte distance wird ebenfalls im Unter-SELECT ermittelt
insertintoselect.txt · Zuletzt geändert: 2017/10/18 00:00 (Externe Bearbeitung)