Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP tidak memperbarui

Sudahkah Anda mencoba menggunakan null untuk bidang itu saat memperbarui?

Anda juga dapat mencoba menyetel nilai default ke CURRENT_TIMESTAMP , daripada 0000-00-00 00:00:00 .

Namun demikian, setiap kali saya ingin memiliki waktu pembuatan dan pembaruan, saya selalu menggunakan yang berikut:

...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....

Saya menggunakan now() , karena merupakan alias untuk CURRENT_TIMESTAMP dan itu lebih pendek. Pada akhirnya, struktur tabel mendapatkan CURRENT_TIMESTAMP , jadi jangan khawatir.

Trik dengan CREATED field yang harus diingat untuk menggunakan null pada kedua field untuk INSERT pernyataan, untuk UPDATE pernyataan itu tidak diperlukan:

INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hasil Grup MySQL berdasarkan hari menggunakan stempel waktu

  2. MySQL hanya dalam bulan ini?

  3. Bagaimana memastikan database MySQL Anda aman

  4. bagaimana cara bekerja dengan kueri rekursif di MySql?

  5. Tidak dapat mengambil nilai yang saya inginkan untuk Pilih menggunakan Prosedur Tersimpan