mysql でバグに遭遇した可能性があると思います。
過去 4 か月間、同じ特定のクエリを使用してきましたが、今日、何らかの理由で機能しなくなりました。問題がわかりません。
これらのクエリをmysqlコンソールで実行していますが、うまく機能し、フィールドが更新されています。しかし、これらのクエリが PHP によって実行されている場合、失敗します。
(2 つのタイムスタンプ フィールドを持つ) テーブルにレコードを挿入した後、特定のタイムスタンプ列を更新しようとしています。
残念ながら、列の更新に失敗します。
クエリは正常に実行されますが (エラーは発生しません)、タイムスタンプ列の値は変わりません。奇妙なことに、最初の列の値を NULL のままにしておくと、更新クエリが成功します。
列 :
START_DATETIME, END_DATETIME - are "timestamp" type.
入れる:
INSERT INTO TABLE1(START_DATETIME, END_DATETIME, RESPONSE)
VALUES(NOW(), NOW(), 'STARTED')
正常に挿入されました。IDは123です
更新クエリは、他のクエリと同様に正常です。
UPDATE TABLE1
SET END_DATETIME = NOW(), RESPONSE='ENDED'
WHERE ID = 123
更新に失敗し、値END_DATETIME
を取得できませんNOW()
。
これで再現できます:
CREATE TABLE TABLE1
(
id int auto_increment,
start_datetime timestamp,
end_datetime timestamp,
response varchar(100),
primary key(id)
);