SQL in MYSQL einspielen

Hallo alle zusammen,

ich habe eine Frage, ich bekomme eine Fehlermeldung nach der anderen,
was mich zu dem Entschluss kommen lässt, das ich es nun alleine nicht
mehr schaffe.
Ich versuche eine SQL in eine mysql einzuspielen, aber
leider bekomme ich eine Fehlermeldung wo ich an einem Punkt angekommen
bin, das ich ohne Hilfe nicht mehr weiter komme.

Ich habe versucht mit folgenden Programmen es einzuspielen:

  • Navicat,
  • phpmyadmin,
  • HeidiSQL

Leider gibt er mir ein Fehler aus.
SQL Fehler (1067): Invalid default value for ‚created_at‘


CREATE TABLE IF NOT EXISTS ‚contract‘ (
‚id‘ int(11) NOT NULL AUTO_INCREMENT,
‚contract_path‘ varchar(255) NOT NULL,
‚created_at‘ datetime DEFAULT CURRENT_TIMESTAMP COMMENT ‚Creation Date of the db-entry‘,
‚updated_at‘ datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
‚expiration_date‘ date NOT NULL,
‚automatic_renew‘ enum(‚true‘,‚false‘) NOT NULL,
‚creation_date‘ date NOT NULL COMMENT ‚Creation Date of the Invoice‘,
‚fk_user_id‘ int(11),
‚contract_number‘ int(11) NOT NULL,
PRIMARY KEY (‚id‘),
KEY ‚fk_user‘ (‚fk_user_id‘),
CONSTRAINT ‚fk_user‘ FOREIGN KEY (‚fk_user_id‘) REFERENCES ‚users‘ (‚id‘)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Kann mir jemand sagen wo der fehler liegt?

Also wenn ich das in google eingebe finde ich so einige Ansätze wo man mal schauen kann wie z.B. https://stackoverflow.com/questions/23312144/error-error-1067-invalid-default-value-for-on-update-current-timestamp
oder ähnliche. Vielleicht hilft das weiter.

probiere es mit einer Batch-Datei, in der mysql.exe zum Einlesen der SQL-Datei gebracht wird. Am Ende wird die Batch-Datei wieder gelöscht. So geht es auch gut. (Und so habe ich gleich cmd und die Möglichkeiten von Batchdateien kennengelernt).

Sub SQLUpdateEinlesen()
Dim strText As String
Dim strDatei As String

strDatei = „C:\Temp\Test.bat“
strText = „@echo off“ & vbLf & _
„echo Update wird gestartet…“ & vbLf & _
„cd c:\Programme\MariaDB 5.5\bin“ & vbLf & _
„mysql -uroot -p[Password] --database=testdatenbank < test.sql“ & vbLf & _
„echo das Update wurde erfolgreich eingelesen“ & vbLf & _
„pause“

'Batch-Datei mit obigem Inhalt erstellen
Open strDatei For Output As #1
Print #1, strText
Close #1

'diese Batchdatei starten
Task = Shell(strDatei, vbMaximizedFocus)

'kurz warten, damit Batchdatei nicht zu früh gelöscht wird
'noch nicht bei großer SQL-Datei getestet !!
Wait 1000

'Batchdatei löschen, damit Passwort nicht in Datei gespeichert und damit sichtbar bleibt
Kill strDatei

End Sub

ok. danke erst einmal für deine Antwort.
ich hab das problem gefunden. das problem liegt im timestamp
ich habe eine ältere version der mysql 5.0.51a
da kann ich leider nur mit einem timestamp arbeiten. erst ab der 5.6.5 ist das problem behoben.

trotzdem 1000 danke für dein tip, der soweit auch hilft.
danke
nun muss ich mir frischling etwas anderes einfallen lassen…