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

Bolehkah Jadual MySQL Mempunyai Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP?

Patricia Arquette
Lepaskan: 2024-11-30 08:35:11
asal
145 orang telah melayarinya

Can MySQL Tables Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

Hanya Satu Lajur TIMESTAMP Dibenarkan dengan CURRENT_TIMESTAMP secara lalai atau Klausa ON UPDATE

Penghadan kod sejarah MySQL mengehadkan jadual untuk mempunyai hanya satu lajur TIMESTAMP CURRENT_TIMESTAMP sama ada dalam DEFAULT atau klausa ON UPDATE. Walau bagaimanapun, had ini telah ditarik balik dalam versi terbaru MySQL.

Ralat Warisan:

Pertimbangkan takrif jadual berikut:

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
);
Salin selepas log masuk
Salin selepas log masuk

Percubaan untuk mencipta jadual ini akan menghasilkan perkara berikut ralat:

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

Resolusi dalam MySQL 5.6.5 dan Kemudian:

Bermula dengan MySQL 5.6.5, sekatan ini telah dialih keluar. Mana-mana lajur TIMESTAMP atau DATETIME kini boleh mempunyai sebarang kombinasi DEFAULT CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP klausa.

Seperti nota keluaran MySQL 5.6.5:

Previously, at most one TIMESTAMP column per table could be
automatically initialized or updated to the current date and time.
This restriction has been lifted. Any TIMESTAMP column definition can
have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE
CURRENT_TIMESTAMP clauses.
Salin selepas log masuk

Oleh itu, definisi jadual disediakan dalam ralat warisan kini boleh dibuat berjaya:

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
);
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah Jadual MySQL 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