"作成済み"と "更新済み"の両方の列を持つテーブルを作成したいとします。 「作成済み」列は挿入時に設定され、変更されることはありません。行「更新」は、行が更新されるたびに変更されます。次のINSERT文またはUPDATE文でこれらの列のいずれかを混乱させたくありません。だから私がこのようなものから始めると、私のCREATE TABLEステートメントはどうなるべきですか?1つのテーブル内に2つのMySQLタイムスタンプ列
CREATE TABLE IF NOT EXISTS `mydb`.`mytable` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`updated` TIMESTAMP,
`created` TIMESTAMP,
`deleted` TINYINT DEFAULT 0,
`notes` TEXT DEFAULT '',
`description` VARCHAR(100)
) TYPE=innodb;
2つのTIMESTAMP列を持つ表の作成に問題があるようです。列がTIMESTAMPかDATETIMEかどうかは気にしません。挿入文や更新文の明示的な指示がなくても、それらの列をMySQLに取り込みたいだけです。このような
INSERT INTO `mydb`.`mytable` (notes,description) VALUES ('some note','some description');
と更新:
私はこのような挿入を行うことができるようにしたいと思い、明示的に「作成」列を設定したり、設定しなくても、
UPDATE `mydb`.`mytable` SET notes=CONCAT(notes,'some more notes') WHERE id=1;
両方(またはinsert文またはupdate文の "updated"カラムをリセットします)。
のようにタイムスタンプ列の順序を変更することです更新が発生するたびに「更新された」列が表示されます。私は完全な例で答えるだろうが、最近はPostgreSQLだけを使用しているので、MySQLでどのように処理されているのか分からない。しかし、私はMySQLのマニュアルが完全な構文を提供すると確信しています。 – Flimzy
可能な複製[複数のTIMESTAMP列を持つ1つのMySQLテーブル](http://stackoverflow.com/questions/4851672/one-mysql-table-with-multiple-timestamp-columns) –