Facetious: sql insert

hi leute!

Frage:
ich habe eine db mit vielen feldern (access via odbc)
in diese möchte ich daten einfügen
ist es jetzt möglich das sql statement irgendwie so hinzubiegen, dass ich nicht alle felder in die ich etwas hineinschreiben will anzugeben?
zB:
INSERT INTO user (*) VALUES ('bla','bla');
?

mfg Facetious

  1. Hallo,

    INSERT INTO user (*) VALUES ('bla','bla');

    Ja, indem du das (*) weglässt. Allerdings würde ich dir davon abraten. Überleg mal, was passieren würde, wenn du ex post mittendrin noch mal eine Spalte einfügst...

    Gruß
    Lachgas

    --
    Keine Verbesserung ist zu klein oder geringfügig, als dass man sie nicht durchführen sollte. (Adorno)
    1. Ja, indem du das (*) weglässt. Allerdings würde ich dir davon abraten. Überleg mal, was passieren würde, wenn du ex post mittendrin noch mal eine Spalte einfügst...

      kA
      was wird passieren
      habs sql nicht wirklich drauf

      1. Hallo,

        was wird passieren

        Naja, wenn die Tabelle vorher diese Spalten hatte:

        id - name - text

        und du fügst die Werte per INSERT INTO tabelle VALUES ('1', 'N2O', 'Hallo!'); ein, und plötzlich änderst du die Tabelle folgendermaßen:

        id - name - mail - text

        dann steht "Hallo!" in der mail-Spalte. Das ist ja wohl nicht erwünscht. Wenn du allerdings INSERT INTO (id, name, text) VALUES ('1', 'N2O', 'Hallo!'); benutzt hättest, gäbe es das Problem nicht.

        Gruß
        Lachgas

        --
        Keine Verbesserung ist zu klein oder geringfügig, als dass man sie nicht durchführen sollte. (Adorno)
        1. ok check
          aber ich meine, wenn ich eine neue Spalte einfüge, dann muss der User auch einen Wert dafür angeben, sonst wäre es ja unlogisch

          mfg

          1. Hallo,

            aber ich meine, wenn ich eine neue Spalte einfüge, dann muss der User auch einen Wert dafür angeben, sonst wäre es ja unlogisch

            Das stimmt. Aber wenn sich die Tabelle zum Beispiel oft aktualisiert (z.B. Warenkorb) oder du sehr viele SQL-Befehle in einem Skript benutzt, dann vergisst man ganz schnell, das zu ändern. Und es kann sehr böse Auswirkungen haben!

            Gruß
            Lachgas

            --
            Keine Verbesserung ist zu klein oder geringfügig, als dass man sie nicht durchführen sollte. (Adorno)
            1. Hallo,

              aber ich meine, wenn ich eine neue Spalte einfüge, dann muss der User auch einen Wert dafür angeben, sonst wäre es ja unlogisch

              Das stimmt. Aber wenn sich die Tabelle zum Beispiel oft aktualisiert (z.B. Warenkorb) oder du sehr viele SQL-Befehle in einem Skript benutzt, dann vergisst man ganz schnell, das zu ändern. Und es kann sehr böse Auswirkungen haben!

              Gruß
              Lachgas

              gut, aber da sich diese DB nicht verändern wird, passt es
              thx für die rasche Antwort