Hallo!
Ich arbeite mich gerade in Class::DBI ein, finde das sehr angenehm.
Nun habe ich folgende Problemstellung:
Eine Funktion soll zwei Tabellen befüllen, A und B.
Die eine ist der anderen untergeordnet, d.h. Tabelle B enthält einen Fremdschlüssel aus A. A steht in einer 1:n-Beziehung zu B.
Tabelle A:
- id_a INT
- feldA VARCHAR(45)
Tabelle B:
- id_b INT
- fk_id_a INT
- feldB VARCHAR(45)
Nun kommt da ein Datensatz rein.
Mit plain SQL würde ich wahrscheinlich erst den Datensatz in Tabelle A schreiben, die ID des neuen Datensatzes auslesen, dann den Datensatz in Tabelle B schreiben.
Nun sind die über Class::DBI schon miteinander verknüpft. Kann ich das nicht igrgendwie einfacher machen? So dass ich die API nur einmal anspreche, und da sowas sage wie:
MyDBI::TabB->insert({feldB => 'inhalt_b', feld_a => 'inhalt_a'})
und der verknüpft mir das automatisch?
Ist klar, was ich meine? Ich möchte, dass mir der Schritt, erst den Datensatz in TabA erstellen zu müssen, abgenommen wird, wenn ich etwas in TabB schreibe.
Es geht dabei nur um den Fall, dass in TabelleB etwas eingefügt wird, wozu der Schlüssel in TabelleA noch nicht besteht.
Grüße, pktm