Rumah > pangkalan data > tutorial mysql > Bolehkah Jadual MySQL Kini Mempunyai Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP?

Bolehkah Jadual MySQL Kini Mempunyai Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP?

Linda Hamilton
Lepaskan: 2024-11-30 01:47:10
asal
438 orang telah melayarinya

Can MySQL Tables Now Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

Satu Lajur TIMESTAMP Dengan Had CURRENT_TIMESTAMP Diangkat

Dalam versi MySQL sebelumnya, jadual hanya boleh mempunyai satu lajur TIMESTAMP dengan nilai CURRENT_TIMESTAMP dalam sama ada klausa DEFAULT atau ON UPDATE. Percubaan untuk mencipta jadual dengan berbilang lajur sedemikian mengakibatkan ralat.

Klausa Sekatan

Pernyataan di bawah menggambarkan struktur yang terdedah kepada ralat:

CREATE TABLE `foo` (
  `ProductID` INT(10) UNSIGNED NOT NULL,
  `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=INNODB;
Salin selepas log masuk

Ralat dikembalikan:

Error Code : 1293
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Salin selepas log masuk

Bersejarah Sebab

Penghadan ini berdasarkan sejarah berakar umbi dalam sebab warisan kod. Walau bagaimanapun, ia telah ditarik balik dalam versi MySQL terbaharu.

Pengalihan Keluar Sekatan

Sekatan telah dialih keluar dalam MySQL 5.6.5 pada 10 April 2012. Nota keluaran nyatakan:

"Sebelum ini, paling banyak satu lajur TIMESTAMP setiap jadual boleh dimulakan secara automatik atau dikemas kini kepada tarikh dan masa semasa. Sekatan ini telah ditarik balik. Mana-mana definisi lajur TIMESTAMP boleh mempunyai sebarang gabungan klausa CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP Selain itu, klausa ini kini boleh digunakan dengan definisi lajur DATETIME."

Implikasi

Perubahan dalam MySQL ini membolehkan fleksibiliti yang lebih besar dalam reka bentuk meja. Pembangun kini boleh menggunakan berbilang lajur TIMESTAMP dengan nilai CURRENT_TIMESTAMP untuk menjejak perubahan dalam pelbagai aspek entiti tunggal.

Atas ialah kandungan terperinci Bolehkah Jadual MySQL Kini Mempunyai Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan