Tom: MySQL 5.0.32 Insert- und Update-Timestamp

Beitrag lesen

Hello,

ich bekomme es nicht mehr hin bei MySQL 5.0.32 zwei Timestampspalten zu definieren, von denen die eine nur beim Insert bedient und die andere bei jedem Update bedient wird, ohne dass ich Trigger einsetze.

Geht das nicht mehr, oder liegt es am HeidiSQL?

Soweit ich weiß, ging das noch nie. Das Handbuch verneint auch explizit diese Möglichkeit im Kapitel TIMESTAMP Properties as of MySQL 4.1

Es ging definitiv und das Beispiel steht sogar noch in irgend einer älteren MySQL-Handbuch-Version drin.

CREATE TABLE test1 (
  zahl int(11) NOT NULL default '0',
  ts1 timestamp(14) NOT NULL,
  ts2 timestamp(14) NOT NULL default '00000000000000'
) TYPE=MyISAM;

INSERT INTO test1 (zahl, ts2) VALUES (2, NULL);

SELECT * FROM test1;
zahl  ts1               ts2
2     20050308100309    20050308100309

UPDATE test1 SET zahl = 3 WHERE zahl = 2;

SELECT * FROM test1;
zahl  ts1               ts2
3     20050308100542    20050308100309

Allerdings musste man da der Insert-Spalte diskret "NULL" übergeben.

Das muss man bei Verwendung von Triggern natürlich nicht mehr.
Und man kann die Spalten für den "standard_php_user" auch sperren gegen Veränderung.

Ich suche nun die eleganteste und nachhaltigste Lösung.

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau