Ankündigung

Einklappen
Keine Ankündigung bisher.

insert mit nur "Teilangaben" von Spalten

Einklappen

Neue Werbung 2019

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

  • insert mit nur "Teilangaben" von Spalten

    Hallo zusammen,

    ich stelle gerade auf php 7.3 und MySQL 5,7 um.
    Alter Server (php 5.5 und MySQL 5.5).

    habe eine Tabelle z. B. id(int)AI, alt(varchar), neu(varchar) Standardwert ist überall "keiner"

    Auf dem alten Server konnte einen insert mit nur "neu" durchführen, da kein Wert für alt gegeben und auch nicht benötigt ist.
    PHP-Code:
    insert into tabelle (neuvalue('neu'
    Auf dem neuen Server geht das nicht mehr mit der Fehlermeldung, das kein Defaultwert gegeben ist. Soweit verstanden.

    Wenn ich auf dem neuen Server die Spalte alt im Standartwert "NULL DEFAULT NULL" ändere, funktioniert es auf dem neuen Server.

    Nun meine Frage:
    Ist diese Vorgehensweise die Richtige, wenn ein Datensatz in eine Tabelle eingetragen wird und nicht alle Inhalte gefüllt werden, da der Inhalt keine Bedingung ist (Wie zum Beispiel bei einer Adresstabelle mit der Spalte Firmenzusatz, welcher ja nicht immer gegeben ist)?

    Gruß
    Falke07

  • #2
    Ja.
    Es ist immer besser als default Null anzugeben, wenn Werte gebraucht werden aber zum Zeitpunkt der Eingabe noch nicht bekannt sind.

    Kommentar


    • #3
      NULL steht hier ja speziell auch für (noch) nicht bekannt.

      Klassiker ist zB bei einem Geburtsdatum. Wenn du das noch nicht weißt muss es eigentlich NULL sein, weil '0000-00-00' (was oft gerne als Platzhalter genommen wird) kein gültiges Datum ist und in einigen DBMS auch mit einem Fehler quittiert wird (sofern ich mich da richtig erinnere).
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Hallo ihr 2,

        Thx.

        SL
        Falke07

        Kommentar


        • #5
          Zitat von hausl Beitrag anzeigen
          NULL steht hier ja speziell auch für (noch) nicht bekannt.

          Klassiker ist zB bei einem Geburtsdatum. Wenn du das noch nicht weißt muss es eigentlich NULL sein, weil '0000-00-00' (was oft gerne als Platzhalter genommen wird) kein gültiges Datum ist und in einigen DBMS auch mit einem Fehler quittiert wird (sofern ich mich da richtig erinnere).
          Deine Erinnerungen sind korrekt.
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar

          Lädt...
          X