not null

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

  • not null

    Hi,

    was bedeutet eigentlich "not null". Ich hätte gedacht, dass in der entsprechenden Tabellenspalte keine Null-Einträge stehen dürfen.
    Nicht destotrotz kann ich in eine Spalte (varchar) die angeblich auf not null gesetzt ist, Null-Einträge einfügen.
    Wie kann man das ganze unterbinden?

    Danke und lieben Gruß

  • #2
    not null bedeutet, dass hier ein wert stehen muss. auch wenn es sich nur um einen leeren string bzw. 0 handelt
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Re: not null

      Original geschrieben von katja86
      Nicht destotrotz kann ich in eine Spalte (varchar) die angeblich auf not null gesetzt ist, Null-Einträge einfügen.
      Das glaub ich nicht.

      Kommentar


      • #4
        Danke ersteinmal für die schnelle Antwort

        ich kann also in Spalten die auf not null gesetzt sind leere Strings einfügen, besteht denn eine Möglichkeit das zu unterbinden, ähnlich der Unique-Eigenschaft (wo ja bekanntlich keine zwei gleichen Einträge in einer Spalte stehen dürfen)?

        Kommentar


        • #5
          Es gibt keine Möglichkeit, dies per Tabellendefinition zu verbieten. Aber du kannst es mit einem BEFORE INSERT Trigger machen oder einfach in deiner Applikation.

          Kommentar


          • #6
            ich habe es befürchtet

            danke für die Info

            Kommentar


            • #7
              Original geschrieben von XGremliN
              not null bedeutet, dass hier ein wert stehen muss. auch wenn es sich nur um einen leeren string bzw. 0 handelt
              Ein 'leerer' string im sinne von 'ohne zeichen' geht afaik auch nicht ...
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Doch das geht. Folgendes wird afaik von MySQL klaglos akzeptiert.
                Code:
                CREATE TABLE `test` (
                  `test` varchar(255) NOT NULL DEFAULT ''
                );
                INSERT INTO `test` VALUES ('');

                Kommentar


                • #9
                  Weil NULL != "" != "blub", genauso wie in PHP und jeder anderen Programmiersprache dieser Welt auch...

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Original geschrieben von onemorenerd
                    Doch das geht. Folgendes wird afaik von MySQL klaglos akzeptiert.
                    Code:
                    CREATE TABLE `test` (
                      `test` varchar(255) NOT NULL DEFAULT ''
                    );
                    INSERT INTO `test` VALUES ('');
                    Das ist ein String. Probier das doch mal mit NULL. Es heißt ja auch NOT NULL und nicht NOT ''

                    Kommentar


                    • #11
                      @h3ll: Ich schrieb das als Antwort auf unsets letzten Beitrag.

                      Kommentar


                      • #12
                        Sorry, hab ich übersehn.

                        Kommentar

                        Lädt...
                        X