Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
Mit "krank" meinte ich die StoredProc.
Die Anonymus-Variante ist dagegen ganz hübsch.
Blöd wäre hier halt, wenn z.B. zur selben Zeit zwei solche Querys laufen und sie sich gegenseitig diese Prozedur überschreiben. :stupid:
Genausu wie eine zusätzliche Tabelle zu nutzen, für die temporären Variablen, auch dabei könnten sich welche gegenseitig diese Variable überschreiben.
Und das...
Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
Cool, das mit dem Anonymus funktioniert. :thumb:
DO $$
DECLARE mrID INTEGER;
BEGIN
END$$;
Ich hatte es schon mit einer ähnlichen (krankeren) Variante versucht.
> StroredProzedur erstellen, aufrufen und wieder löschen
Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
Jupp.
Einen Wert/eine Stelle kann ich ersetzen, aber eben nicht Mehrere.
Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
mr_id ist ein AutoInc-Field.
Im Prinzip geht es um sowas:
CREATE TABLE Personen (
Person SERIAL PRIMARY KEY,
Name VARCHAR(50) NOT NULL);
CREATE TABLE Körperteil (
Person INTEGER NOT NULL REFERENCES Person ON UPDATE CASCADE,
Name VARCHAR(50) NOT NULL,
Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
Nur kann ich da nicht erkennen, wo der mehrfach verwendete Wert reinkommt?
Für eine Zeile wäre es etwa so.
INSERT INTO t (a, b, c, i) VALUES ('a', 'b', 'c', (INSERT INTO ... RETURNING mr_id)).
Aber ich möchte die ID ja an mehreren Stellen verwenden.
Forum: Datenbanken
Delphi
by himitsu,
11. Jan 2012
INSERT INTO ... RETURNING mr_id;
oder?
INSERT INTO ... RETURNING mr_id AS mrID;
INSERT INTO ... VALUES
(mrID, ...),
(mrID, ...),
...;
Im Prinzip könnte ich ja das erste Insert in das Zweite reinbekommen, aber wie mache ich es, wenn ich den Wert mehrfach benötige? (temporäre Variablen gibt's scheinbar nicht)