Announcement

Collapse
No announcement yet.

"...not null default null..." ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "...not null default null..." ?

    Hallo liebe Coder,

    ich habe eine frage... Bei der Konvertierung eines MySQL-DUMP's in einen MSSQL-DUMP habe ich folgendes erhalten.

    MySQL-Abschnitt:
    Code:
    CREATE TABLE `name01` (
      `id` mediumint(6) unsigned NOT NULL auto_increment,
      `name` char(12) NOT NULL,
      `preis` datetime NOT NULL,
      `kalorien` datetime NOT NULL,
      `monix` datetime NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10516 DEFAULT CHARSET=utf8;
    Konvertierter MSSQL-Abschnitt:
    Code:
    CREATE TABLE [datei] ([id] BIGINT IDENTITY(1,1)  ,
    [name] NCHAR(12) NOT NULL  DEFAULT N'' ,
    [preis] DATETIME NOT NULL  DEFAULT NULL  ,
    [kalorien] DATETIME NOT NULL  DEFAULT NULL  ,
    [monix] DATETIME NOT NULL  DEFAULT NULL   CONSTRAINT  [_datei_PRIMARY]
    PRIMARY KEY  CLUSTERED  ([id]));
    Eigentlich ist soweit alles richtig (oder macht zumindest keine Probleme), oder?
    Bis auf eine Tatsache "...NOT NULL DEFAULT NULL...". Das widerspricht sich doch, oder? Hat das einen Sinn, den ich gerad als Anwendungsfall nicht sehe?

    Danke für die schnelle Hilfe,
    Gruss

  • #2
    NOT NULL Default NULL ist m.E. Schwachsinn. Außer ein DBMS erlaubt als Initialwert Null welcher aber niemals in einem Update gesetzt werden darf.

    Comment


    • #3
      Zudem finde ich den Typ DateTime komisch für einen Preis

      Comment


      • #4
        Und es ist schön zu sehen, dass auch die unsäglichen Backticks übernommen werden.
        Mach die [] um die Spaltennamen weg bzw. auch die Backticks in der mysql Definition. Damit wird man nur zu seltsamen Spaltennamen und unnötiger Tipparbeit verleitet.

        Des weiteren stimmen die Tabellennamen nicht überein. Das Konvertierungstools ist nicht so besonders scheint mir.

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Hallo,
          Originally posted by Bernhard Geyer View Post
          NOT NULL Default NULL ist m.E. Schwachsinn. Außer ein DBMS erlaubt als Initialwert Null welcher aber niemals in einem Update gesetzt werden darf.
          So schwachsinnig ist das gar nicht. Es ist schlicht und ergreifend das Standardverhalten. Ein Feld welches nicht in der INTO-Klausel eines INSERT-Statements aufgeführt ist, wird - wenn kein anderer DEFAULT-Wert definiert ist - mit NULL belegt, hat also einen impliziten DEFAULT-Wert NULL den man natürlich auch explizit angegeben kann.

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Originally posted by Falk Prüfer View Post
            So schwachsinnig ist das gar nicht. Es ist schlicht und ergreifend das Standardverhalten. Ein Feld welches nicht in der INTO-Klausel eines INSERT-Statements aufgeführt ist, wird - wenn kein anderer DEFAULT-Wert definiert ist - mit NULL belegt, hat also einen impliziten DEFAULT-Wert NULL den man natürlich auch explizit angegeben kann.
            Man hat eine Spalte die keinen Null-Wert enthalten darf aber setzt den Default-Wert auf Null

            Comment


            • #7
              Originally posted by Bernhard Geyer View Post
              Man hat eine Spalte die keinen Null-Wert enthalten darf aber setzt den Default-Wert auf Null
              Ja, damit erzwingt man das Angeben der Spalte im INTO-Teil der INSERT-Klausel, da ansonsten der NOT NULL-Constraint greift und das Einfügen verhindert. Wie gesagt - ist das Standardverhalten.
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment

              Working...
              X