2016-08-04 17 views
3

Ich bin in die Liste der vorhandenen Tabellen eine neue Tabelle hinzu:Fehlercode 1067, die SQL-Status 42000: Ungültige Standardwert für ‚memberSince‘, wenn eine Tabelle kompiliert

CREATE TABLE Counselor (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    firstName VARCHAR (50), 
    nickName VARCHAR (50), 
    lastName VARCHAR (50), 
    telephone VARCHAR (25), 
    email VARCHAR (50), 
    memberSince DATE DEFAULT '0000-00-00', 
    PRIMARY KEY (id) 
); 

Ausführung mit der folgenden Meldung unterbrochen :

Error code 1067, SQL state 42000: Invalid default value for 'memberSince' 

Was kann ich tun, um es zu beheben?

Antwort

0

In MySQL ist '0000-00-00' kein gültiges Datum. Entsprechend der MySQL docs:

Der DATE-Typ wird für Werte mit einem Datumsteil aber keinem Zeitteil verwendet. MySQL ruft DATE-Werte im Format 'JJJJ-MM-TT' ab und zeigt sie an. Der unterstützte Bereich ist "1000-01-01" bis "9999-12-31".

Ich empfehle die Verwendung NULL, wenn Sie keinen sinnvollen Standardwert haben, den Sie verwenden können.

CREATE TABLE Counselor (
... 
memberSince DATE DEFAULT NULL, 
...