CafeDelMar: mysql: INSERT in zwei Tabellen

N'abend :)

Ich habe mehrere INSERT's zu erledigen:

INSERT INTO users1 (id, user) VALUES (?,?)
INSERT INTO users2 (id, user) VALUES (?,?)

Alle befinden sich jedoch in derselben Datenbank.
Kann man soetwas auch in einem einzigen Befehl erledigen?

LG

  1. yo,

    Kann man soetwas auch in einem einzigen Befehl erledigen?

    ja, das kann man, aber macht bei nur zwei datensätze nicht wirklich viel sinn.

    Ilja

    1. UND WIE?

      Ich frag lieber mal, denn andernfalls müsste ich ne Transaktion schreiben

      1. yo,

        UND WIE?

        INSERT INTO users1 (id, user)
        SELECT spalte1, spalte2
        FROM (
              (SELECT 'werte1' AS Spalte1, 'wert2' AS Spalte2)
               UNION
              (SELECT 'werte3', 'wert4')
             ) tab

        Ilja

        1. yo,

          ich habe whl den ausgangposting nicht richtig gelesen und nicht gesehen, dass es sich um zwei unterschiedliche tabellen handelt. insofern stimme ich zu, ich kenne dafür auch keine lösung.

          Ilja

          1. yo,

            ich habe whl den ausgangposting nicht richtig gelesen und nicht gesehen, dass es sich um zwei unterschiedliche tabellen handelt. insofern stimme ich zu, ich kenne dafür auch keine lösung.

            Also "nö".

            1. ich habe whl den ausgangposting nicht richtig gelesen und nicht gesehen, dass es sich um zwei unterschiedliche tabellen handelt. insofern stimme ich zu, ich kenne dafür auch keine lösung.
              Also "nö".

              Deine Rolle in diesem Beitragsstrang ist allerdings auch eine eher zweifelhafte:
              https://forum.selfhtml.org/?t=145440&m=944038

              Was - verdammt noch mal - soll das denn heissen?

            2. yö,

              Also "nö".

              richtig, ich habe mich da zu sehr aus dem fenster gelehnt und nicht gesehen, dass es sich um zwie unterschiedlichen tabellen handelt.

              Ilja

  2. Alle befinden sich jedoch in derselben Datenbank.
    Kann man soetwas auch in einem einzigen Befehl erledigen?

    Nein.

    1. yo,

      Nein.

      ja

      1. yo,

        Nein.

        ja

        Nö.

        1. Nö.

    2. Alle befinden sich jedoch in derselben Datenbank.
      Kann man soetwas auch in einem einzigen Befehl erledigen?
      Nein.

      z.B.:
      --
      INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

      ( http://dev.mysql.com/doc/refman/5.1/de/insert.html )
      ( http://dev.mysql.com/doc/refman/5.1/de/insert-select.html )

      1. Hello,

        INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

        sorry, aber das hat WAS mit dem Einfügen in verschiedene Tabellen zu tun? Gefragt war nicht nach mehreren Datensätzen in einer Abfrage...
        Für das Einfügen in mehrere Tabellen bieten sich z.B. Stored Procedures oder Trigger an, im ersten Fall ruft man einmal die Prozedur auf, die von sich aus die Tabellen anspricht, im Fall zwei führt man ein Insert auf der Tabelle aus, die den Trigger besitzt, der wiederum für die Weiterleitung an die anderen Tabellen zuständig ist.

        MfG
        Rouven

        --
        -------------------
        Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
        1. INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
          sorry, aber das hat WAS mit dem Einfügen in verschiedene Tabellen zu tun? Gefragt war nicht nach mehreren Datensätzen in einer Abfrage...

          Sorry, wir hatten nur Iljas "Statements" ernstgenommen und sind dadurch inhaltlich vom Kurs abgekommen.

        2. Für das Einfügen in mehrere Tabellen bieten sich z.B. Stored Procedures oder Trigger an, im ersten Fall ruft man einmal die Prozedur auf, die von sich aus die Tabellen anspricht, im Fall zwei führt man ein Insert auf der Tabelle aus, die den Trigger besitzt, der wiederum für die Weiterleitung an die anderen Tabellen zuständig ist.

          Gewünscht war "ein Befehl", also keine Prozedur und kein Stapel.
          Trigger sind wohl eher eine theoretische Möglichkeit und sollten sicherlich keine INSERTs ersetzen.
          Massenimport gäbe es noch als Möglichkeit, bspw. aus CSV-Dateien. Allerdings wurde auch das nicht angefragt.

  3. Hi,

    fangen wir bei der Wurzel des Problems: Du brauchst keine zwei Tabellen, die dasselbe Schema haben. Normalisiere bitte einfach dein Modell. Unter dem Stichwort "Normalisierung" solltest du genügend Information ergoogeln können.

    Ciao, Frnak

    1. fangen wir bei der Wurzel des Problems: Du brauchst keine zwei Tabellen, die dasselbe Schema haben. Normalisiere bitte einfach dein Modell. Unter dem Stichwort "Normalisierung" solltest du genügend Information ergoogeln können.

      Das riecht in der Tat ein wenig nach "Ein Nutzer? - Eine Tabelle!".
      Schän angemerkt.   ;)