2017-11-01 9 views
0

Ich bin herumspielen mit MySQL Workbench, mit seinen Tools, um meine Datenbank zu erstellen. Beim Versuch, die Datenbank weiter zu entwickeln, erhalte ich diesen Fehler.MySQL Workbench Fehler geben 1064

Executing SQL script in server 
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-01-01, 
    `PlateNum` CHAR(7) NOT NULL DEFAULT 'ABCDEFG', 
    `CellPhone` INT(10) U' at line 9 
SQL Code: 
     -- ----------------------------------------------------- 
     -- Table `MetalDelivery`.`Drivers` 
     -- ----------------------------------------------------- 
     CREATE TABLE IF NOT EXISTS `MetalDelivery`.`Drivers` (
      `DriverID` INT NOT NULL AUTO_INCREMENT, 
      `FName` CHAR(12) NOT NULL DEFAULT 'First', 
      `LName` CHAR(12) NOT NULL DEFAULT 'Last', 
      `Sex` CHAR(1) NOT NULL DEFAULT 'M', 
      `DOB` DATE NOT NULL DEFAULT 1900-01-01, 
      `PlateNum` CHAR(7) NOT NULL DEFAULT 'ABCDEFG', 
      `CellPhone` INT(10) UNSIGNED NOT NULL DEFAULT 5550000000, 
      PRIMARY KEY (`DriverID`)) 
     ENGINE = InnoDB 

SQL script execution finished: statements: 6 succeeded, 1 failed 

In der SQL-Skript Vorschau, tut es

Antwort

0

Jede Art von Datum, als ob eine Zeichenfolge angegeben werden muss ein Semikolon nach InnoDB zeigen:

`DOB` DATE NOT NULL DEFAULT '1900-01-01' 

Es ist auch dieses Schema wert erweitern ein bisschen. Namen sind häufig über 12 Buchstaben lang. VARCHAR(255) ist ein guter Standard für "String" -Felder.

Sie können feststellen, dass diese Standardeinstellungen ein großer Fehler sind. Es ist möglich, dass jemand den tatsächlichen Nachnamen "Letzter" hat. In diesem Fall ist es so, als würden sie einen Standard verwenden, oder sie haben einfach keinen Nachnamen. NULL Werte dienen einem Zweck, also umarme sie.

+0

Das hat den Trick! Es hat mich dazu gebracht, die einfachen Anführungszeichen für meine CHAR-Standardwerte hinzuzufügen, aber nicht dafür. –

+0

Alles, was keine einfache Zahl oder ein Funktionsaufruf ist, benötigt Anführungszeichen mit Ausnahme von Dingen wie "Entitätsnamen" wie Tabellen, Spalten oder Datenbanken. Das wurde als "1900 minus 1 minus 1" geparst, was man in einem Standard nicht tun kann. – tadman