Mysql3.23.42+PHPで下記のようなテーブルで
Field| Type
----+------------
 a | int
 b | varchar
 c | varchar
 d | timestamp
 e | timestamp
update文を実行すると、

 update set b='あ',c='い',e=NULL where a='1';
dまでアッデートされてしまうのですが何ででしょう?
何か特別なことしなくてはいけないのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

TIMESTAMP型の仕様です。


TIMESTAMP型は、INSERT や UPDATE の際に自動的に現在日時で更新されます。
複数のTIMESTAMP型のフィールドがある場合は最初の一つだけが更新されます。
任意の日時を保管する場合、DATETIME型を用いるようにしましょう。
    • good
    • 0
この回答へのお礼

両方ともDATETIME型変え
UPDATEさせるようにしたらうまくいくようになりました。
ありがとうございました。

お礼日時:2002/02/18 18:25

 MySQLが一般のSQLとの違いが解らないのですが、SQLですと、



update テーブル名 set 更新field名 = 更新データ where 条件

 となるはずですので、updateのあとにテーブル名が抜けているということはありませんか?

参考URL:http://www.rfs.co.jp/sitebuilder/sql/03/01.html

この回答への補足

すいません。
update tb set b='あ',c='い',e=NULL where a='1';
のようにテーブル名は書いています。

補足日時:2002/02/13 12:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


人気Q&Aランキング

おすすめ情報