#1067 - Fehlerhafter Vorgabewert (DEFAULT) für 'Endeaktion'

ThiageX

Benutzer
Beiträge
6
Hallo zusammen,

ich wollte gerade mit Hilfe phpmyadmin eine neue Tabelle in meine Datenbank einfügen. Leider wird mir folgende Meldung angezeigt:
#1067 - Fehlerhafter Vorgabewert (DEFAULT) für 'Endaktion'

CREATE TABLE Gutscheinakt (
AktionID INTEGER AUTO_INCREMENT,
Beginaktion TIMESTAMP NOT NULL,
Endaktion TIMESTAMP NOT NULL,
Titel VARCHAR (500) NOT NULL,
Beschreibung TEXT,
Gutscheincode VARCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY (AktionID)
)

Ohne die Zeile Endaktion TIMESTAMP NOT NULL funktioniert er komischerweise.

Vielen Dank für Eure Hilfe!
 
Werbung:
Kann es sein, daß Du das nicht via Cop&Paste übernommen hast? Mit Änderung INTEGER AUTO_INCREMENT zu serial funktioniert es hier ohne Probleme:

Code:
test=# CREATE TABLE Gutscheinakt (
AktionID serial,
Beginaktion TIMESTAMP NOT NULL,
Endaktion TIMESTAMP NOT NULL,
Titel VARCHAR (500) NOT NULL,
Beschreibung TEXT,
Gutscheincode VARCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY (AktionID)
);
CREATE TABLE
test=#

ist aber kein MySQL.
 
Ich habe diesen Code aus unserem Lehrbuch und diese arbeiten auch mit phpmyadmin (MySQL bzw MariaDB). Weiß der Geier was das nun wieder ist! :)
 
elektronisches Lehrbuch kopiert? Vielleicht "schräge" Zeichen drin.
Rauslöschen und mal per Hand tippen..

Ansonsten gibt es diverse Treffer zu dem Fehler, speziell für Versionen 5.xy.
bezüglich SQL Mode, Strict, Default Value usw.
Unter 8 geht es, unter 5.7 nicht.
Welche Version nutzt, Du? Alles <8 am besten sofort entsorgen. Und über den Hinweis von @akretschmer nachdenken.
 
MySQL ist einfach nur eine Ansammlung stinkender Bugs. Setze vor Deine Zeile:

Code:
set SQL_MODE = '';

und es wird funktionieren. Frag mich aber nicht, welche anderen Bugs Du damit triggerst. Wirf MySQL am besten zu Putin in die Tonne für Sondermüll.
 
Werden in dem Lehrbuch auch Default-Werte für Spalten gesetzt? Wurde das eventuell auf eine Tabelle gemacht, die Tabelle dann wieder gelöscht und MySQL hat sich den Default-Wert Constraint irgendwie gemerkt?
 
Werden in dem Lehrbuch auch Default-Werte für Spalten gesetzt? Wurde das eventuell auf eine Tabelle gemacht, die Tabelle dann wieder gelöscht und MySQL hat sich den Default-Wert Constraint irgendwie gemerkt?
es hängt am SQL_MODE:

Code:
mysql> CREATE TABLE Gutscheinakt ( AktionID INTEGER AUTO_INCREMENT, Beginaktion TIMESTAMP NOT NULL, Endaktion TIMESTAMP NOT NULL, Titel VARCHAR (500) NOT NULL, Beschreibung TEXT, Gutscheincode VARCHAR(100) NOT NULL UNIQUE, PRIMARY KEY (AktionID) );
ERROR 1067 (42000): Invalid default value for 'Endaktion'
mysql> set SQL_MODE = '';
Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql> CREATE TABLE Gutscheinakt ( AktionID INTEGER AUTO_INCREMENT, Beginaktion TIMESTAMP NOT NULL, Endaktion TIMESTAMP NOT NULL, Titel VARCHAR (500) NOT NULL, Beschreibung TEXT, Gutscheincode VARCHAR(100) NOT NULL UNIQUE, PRIMARY KEY (AktionID) );
Query OK, 0 rows affected (0,07 sec)

mysql>

einfach nur Müll ...
 
Werbung:
welche version setzt du ein ?

Der code ist richtig für MariaDB (serial)

Code:
MariaDB [test]> CREATE TABLE Gutscheinakt (
    -> AktionID INTEGER AUTO_INCREMENT,
    -> Beginaktion TIMESTAMP NOT NULL,
    -> Endaktion TIMESTAMP NOT NULL,
    -> Titel VARCHAR (500) NOT NULL,
    -> Beschreibung TEXT,
    -> Gutscheincode VARCHAR(100) NOT NULL UNIQUE,
    -> PRIMARY KEY (AktionID)
    -> );
Query OK, 0 rows affected (0.058 sec)

MariaDB [test]>
 
Zurück
Oben