lvl: mySQL Syntax Frage

Hallo alle zusammen.

Ich habe folgende Situation.

datenbank test
tabellen test und test2

test
----------------------------------
ID, Name, Nachname
----------------------------------

test2
----------------------------------
Test2ID, ID, Name, Nachname
----------------------------------

SQL:
INSERT INTO
  test.test2
  (ID, Name, New_Field_Name)
  SELECT
    ID, Name, New_Field_Name
  FROM
    test.test
  WHERE
    ID = 12;

Dieser SQL geht!

SQL:
INSERT INTO
  test.test2
  (ID, Name, New_Field_Name)
  SELECT
    *
  FROM
    test.test
  WHERE
    ID = 12;

Dieser SQL geht nicht! (Fehlermeldung ist: Column count doesn't match value count at row 1)

Da ich aber nicht immer alle Felder schreiben will, wollte ich fragen, ob es eine andere Möglichkeit gibt, oder ob ich einfach etwas falsch mache?

--
MfG lvl
  1. Hallo,

    SQL:
    INSERT INTO
      test.test2
      (ID, Name, New_Field_Name)
      SELECT
        *
      FROM
        test.test
      WHERE
        ID = 12;

    Dieser SQL geht nicht! (Fehlermeldung ist: Column count doesn't match value count at row 1)

    das kann ich mit MySQL 5.0.51 nicht nachvollziehen.

    Da ich aber nicht immer alle Felder schreiben will,

    Das kann ich auch nicht nachvollziehen. SELECT * ist böse[tm].

    Freundliche Grüße

    Vinzenz

    1. das kann ich mit MySQL 5.0.51 nicht nachvollziehen.

      Wir benutzen die 5er Version von MySQL, und mit dem QueryBrowser von MySQL bingt er diese Fehlermeldung.

      --
      MfG lvl
  2. echo $begrüßung;

    test2
    Test2ID, ID, Name, Nachname
    INSERT INTO test.test2 (ID, Name, New_Field_Name)

    Das Problem ist mit deinem Beispiel nicht nachvollziehbar, weil dieses einen "unknown column"-Fehler liefert.

    echo "$verabschiedung $name";