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.
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    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]
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar

          Lädt...
          X