- ベストアンサー
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までアッデートされてしまうのですが何ででしょう? 何か特別なことしなくてはいけないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
TIMESTAMP型の仕様です。 TIMESTAMP型は、INSERT や UPDATE の際に自動的に現在日時で更新されます。 複数のTIMESTAMP型のフィールドがある場合は最初の一つだけが更新されます。 任意の日時を保管する場合、DATETIME型を用いるようにしましょう。
その他の回答 (1)
- ukkey119
- ベストアンサー率27% (36/129)
回答No.1
MySQLが一般のSQLとの違いが解らないのですが、SQLですと、 update テーブル名 set 更新field名 = 更新データ where 条件 となるはずですので、updateのあとにテーブル名が抜けているということはありませんか?
質問者
補足
すいません。 update tb set b='あ',c='い',e=NULL where a='1'; のようにテーブル名は書いています。
お礼
両方ともDATETIME型変え UPDATEさせるようにしたらうまくいくようになりました。 ありがとうございました。