Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
Delphi 12 Athens
|
AW: INSERTs verbinden
11. Jan 2012, 13:19
mr_id ist ein AutoInc-Field.
Im Prinzip geht es um sowas:
SQL-Code:
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,
Größe INTEGER NOT NULL);
pID := INSERT INTO Personen (Name) VALUES ('Frank') RETURNING PersonId;
INSERT INTO Körperteile (Person, Name, Größe) VALUES (:pID, 'Nase', 10), (:pID, 'Mund', 20), (:pID, 'Augen', 5);
-- bzw.
pID := INSERT INTO Personen (Name) VALUES ('Frank') RETURNING PersonId;
INSERT INTO Körperteile (Person, Name, Größe) VALUES (:pID, 'Nase', 10);
INSERT INTO Körperteile (Person, Name, Größe) VALUES (:pID, 'Mund', 20);
INSERT INTO Körperteile (Person, Name, Größe) VALUES (:pID, 'Augen', 5);
...
Nur eben am Ende nur als ein einziges Statement.
Innerhalb von diesen komischen Prozeduren ginge sowas, aber in einer einfachen Query sieht es mit Variablen etwas schlecht aus.
SQL-Code:
CREATE FUNCTION ... AS #
DECLARE mrID INTEGER;
BEGIN
SELECT mr_id INTO mrID FROM ...;
INSERT INTO table VALUES (mrID, 'Nase', 10), (mrID, 'Mund', 20);
END#;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
Geändert von himitsu (11. Jan 2012 um 13:32 Uhr)
|
|
Zitat
|