• ベストアンサー

Mysqlのupdate文

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までアッデートされてしまうのですが何ででしょう? 何か特別なことしなくてはいけないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • akkun2k
  • ベストアンサー率71% (5/7)
回答No.2

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

noname#244833
質問者

お礼

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

その他の回答 (1)

  • ukkey119
  • ベストアンサー率27% (36/129)
回答No.1

 MySQLが一般のSQLとの違いが解らないのですが、SQLですと、 update テーブル名 set 更新field名 = 更新データ where 条件  となるはずですので、updateのあとにテーブル名が抜けているということはありませんか?

参考URL:
http://www.rfs.co.jp/sitebuilder/sql/03/01.html
noname#244833
質問者

補足

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

関連するQ&A