Ankündigung

Einklappen
Keine Ankündigung bisher.

M:N Insert

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • M:N Insert

    ich habe 3 Tabellen für eine m:n Beziehung:

    create table tbl_person(
    id int not null auto_increment primary key,
    name varchar(30),
    vorname varchar(30),
    geburtstag date
    )engine=innodb;

    create table tbl_hobby(
    id int not null auto_increment primary key,
    hobby varchar(50)
    )engine=innodb;

    create table tbl_person_hobby(
    person_id int not null,
    hobby_id int not null,
    constraint person_con foreign key(person_id) references tbl_person(id),
    constraint hobby_con foreign key(hobby_id) references tbl_hobby(id)
    )engine=innodb;

    Um etwas einzufügen muss ich doch für tbl_person und für tbl_hobby einen insert gestalten.. und dann mit 2 Select abfragen die entstandenen ID abfragen, um diese mit einem Insert in die Verbindungstabelle tbl_person_hobby einzutragen

    Gibt es da einen besseren weg?


  • #2
    Wenn die Person und das Hobby nicht existieren ist das nunmal so. Einen INSERT auf drei Tabellen auf einmal wäre mir nicht bekannt.
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      An den drei INSERTs kommst Du nicht vorbei. Jetzt ist es nur noch wichtig, die korrekte ID des AUTO_INCREMENT abzuholen. Insbesondere in einem Multi-User-System geht dass nicht einfach mit SELECT MAX(id) FROM... sondern bei MySQL mit LAST_INSERT_ID().

      Schau Dir also mal LAST_INSERT_ID() an.

      Ausserdem sollten die INSERTs innerhalb einer Transaktion stattfinden (geht ja mit InnoDB)

      Grüße
      Thomas

      Kommentar


      • #4
        Vielen Dank..

        Ich hab schon befürchtet, das es nicht einfacher geht..

        Danke für die Hinweise!!!

        Kommentar


        • #5
          Auch noch: PHP-Pendant - [MAN]mysql_insert_id[/MAN]
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar

          Lädt...
          X