mysql feld timestamp

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 10:42

    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


  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    29. 03. 2008, 12:41

    Hallo,

    und einfach nachher per phpmyadmin umbenennen? nicht immer kompliziert über TYPO3 denken ;)

    georg

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 13:22

    Sorry, ich steh aufm schlauch, was soll ich umbenennen?

    Bedeutet das, dass der Name 'ts' ungültig ist und der Feld[b]typ[/b] (nicht Feldname) 'timestamp' auch mit einer Extensioin funktioniert?

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    29. 03. 2008, 13:25

    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

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 13:41

    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.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    29. 03. 2008, 14:04

    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

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 15:54

    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

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    29. 03. 2008, 16:13

    bitte les meinen Beitrag nochmal ;)

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 17:36

    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?

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    29. 03. 2008, 19:50

    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?