Hallo,
typo3 schreibt ja seinen eigenen Timestamp in die Tabelle.
Es ist für eine externe DB-Anbindung nun aber erforderlich, dass auch der von MYSQL automatisch erzeugte Timestamp verwendet wird. Ich habe das SQL-File der Extension als erweitert mit:
`ts` timestamp(14) NOT NULL,
Leider akzeptiert TYPO3 dieses Feld nicht und kontert mit einer Fehlermeldung. Hat jemand die Erfahrung gemacht und wie ich dieses Feld auch unter TYPO3 verwenden kann? Es ist ja ein legitimer MySQL Feldtyp.
Danke für Eure Hilfe
Hallo,
und einfach nachher per phpmyadmin umbenennen? nicht immer kompliziert über TYPO3 denken 😉
georg
Sorry, ich steh aufm schlauch, was soll ich umbenennen?
Bedeutet das, dass der Name 'ts' ungültig ist und der Feldtyp (nicht Feldname) 'timestamp' auch mit einer Extensioin funktioniert?
der Name ts ist sicher nicht ungültig, zumindest kann ich mir das nicht vorstellen.
ob der typ funktioniert kann ich nicht sagen, nie gemacht, aber das sollte man ja in 5min rausfinden können (nicht ich *G*)
georg
Also der name 'ts' war schon gültig, hab auch andere Namen versucht.
Es ist aber in der Tat der Feldtyp 'timestamp' der automatisch einen Zeitstempel beim Speichern einträgt.
Warum TYPO3 den Feldtyp aber nicht akzeptiert, dass ist mir schleierhaft, ist doch ein normaler Bestandteil einer jeden MySQL-Datenbank und würde den Ablauf nicht negativ beeinflussen. ...Grübel... Ich brauche aber dieses zusätzliche Feld.
es gibt keinen Feldtypen timestamp, nimm int(11) (in Typo3)
dann kannst Du folgendes in phpMyAdmin machen
ALTER TABLE `tabelle` CHANGE `ts` `ts` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Woher hast du denn diese Weisheit, aber natürlich gibt es dieses Feld 🙂
Damit wird automatisch ein Zeitstempel ohne SQL-String erzeugt und eingetragen.
Zitat:
TIMESTAMP Zeitstempel-Feld. Nicht zu verwechseln mit dem UNIX-Timestamp.
Der Eintrag wird bei vorhandenem TIMESTAMP-Feld automatisch
gesetzt und eignet sich insbesondere zum Festhalten von Zeiten bei
UPDATE- und INSERT-Operationen. Erlaubter Bereich von 1970-01-
01 00:00:00 bis zum Ende des Jahres 2037.
Zum Nachlesen eine von vielen Infoseiten
http://www.personalbit.de/modules/news/article.php?storyid=127
bitte les meinen Beitrag nochmal 😉
Hmm.. naja, ich bin kein DB Fachmann sorry, nur wenn ich das ausführe:
ALTER TABLE `tx_dfhsw_versorger` CHANGE `ts` `ts` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Das gibt einen Syntaxfehler in PhpMyAdmin
#1064 - Fehler in der Syntax bei 'ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP' in Zeile 1.
Was ist da nicht richtig?
hi nochmal,
also damit funktioniert es:
ALTER TABLE `tabelle` CHANGE `ts` `ts` TIMESTAMP
Allerdings wird das Feld dann auch wieder "nur" ein 'timestamp' und wird im Extensionmanager wieder angemeckert.
Was soll deine sql-Zeile denn bewirken?
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
?
Ich verstehe das alles nicht. Es muss doch möglich sein, den feldtyp "timestamp" nutzen zu können.
mal ne Frage: warum nutzt du nicht crdate oder tstamp? Die Felder sind Standardmässig in jeder table und speichern timestamps
'tstamp' => time(),