#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:

akretschmer

Datenbank-Guru
Beiträge
9.612
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.
 

ThiageX

Benutzer
Beiträge
6
Ich habe diesen Code aus unserem Lehrbuch und diese arbeiten auch mit phpmyadmin (MySQL bzw MariaDB). Weiß der Geier was das nun wieder ist! :)
 

dabadepdu

Datenbank-Guru
Beiträge
986
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.
 

akretschmer

Datenbank-Guru
Beiträge
9.612
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.
 

ukulele

Datenbank-Guru
Beiträge
4.690
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?
 

akretschmer

Datenbank-Guru
Beiträge
9.612
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:

BerndB

Datenbank-Guru
Beiträge
320
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]>
 
Oben