Rumah >pangkalan data >tutorial mysql >Mengapakah saya mendapat \'Nilai lalai tidak sah untuk \'create_date\'\' apabila menggunakan `0000-00-00 00:00:00` sebagai lalai untuk medan TIMESTAMP dalam MySQL?

Mengapakah saya mendapat \'Nilai lalai tidak sah untuk \'create_date\'\' apabila menggunakan `0000-00-00 00:00:00` sebagai lalai untuk medan TIMESTAMP dalam MySQL?

DDD
DDDasal
2024-10-31 15:37:01252semak imbas

Why am I getting

Membetulkan Nilai Lalai Tidak Sah untuk Medan TIMESTAMP dalam MySQL

Apabila cuba mencipta jadual dengan medan TIMESTAMP dan menentukan nilai lalai ' 0000-00-00 00:00:00', anda mungkin menghadapi ralat "Nilai lalai tidak sah untuk 'create_date'." Ini selalunya disebabkan oleh tetapan Mod SQL pelayan MySQL.

Penjelasan

Mod SQL NO_ZERO_DATE menguatkuasakan ketegasan mengenai pengendalian tarikh sifar. Ia menghalang pemasukan '0000-00-00' sebagai tarikh yang sah, menganggapnya sebagai nilai yang tidak sah.

Penyelesaian

Untuk menyelesaikan ralat, anda boleh sama ada :

  • Lumpuhkan Mod SQL NO_ZERO_DATE:

    <code class="mysql">SET SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION';</code>
  • Gunakan pilihan IGNORE untuk membenarkan pemasukan tarikh sifar:

    <code class="mysql">CREATE TABLE IF NOT EXISTS `erp`.`je_menus` (
      `id` INT(11) NOT NULL AUTO_INCREMENT ,
      `name` VARCHAR(100) NOT NULL ,
      `description` VARCHAR(255) NOT NULL ,
      `live_start_date` DATETIME NULL DEFAULT NULL ,
      `live_end_date` DATETIME NULL DEFAULT NULL ,
      `notes` VARCHAR(255) NULL ,
      `create_date` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' IGNORE,
      `created_by` INT(11) NOT NULL ,
      `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
      `updated_by` INT(11) NOT NULL ,
      `status` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;</code>

Sebaik sahaja anda membuat pelarasan ini, anda sepatutnya berjaya mencipta jadual dengan nilai lalai yang ditentukan untuk medan TIMESTAMP.

Atas ialah kandungan terperinci Mengapakah saya mendapat 'Nilai lalai tidak sah untuk 'create_date'' apabila menggunakan `0000-00-00 00:00:00` sebagai lalai untuk medan TIMESTAMP dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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