Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Throw Ralat 1364: 'Bidang Tidak Mempunyai Nilai Lalai'?

Mengapa MySQL Throw Ralat 1364: 'Bidang Tidak Mempunyai Nilai Lalai'?

Patricia Arquette
Lepaskan: 2024-12-24 02:59:14
asal
685 orang telah melayarinya

Why Does MySQL Throw Error 1364:

Ralat MySQL 1364: Medan Tidak Mempunyai Nilai Lalai

Apabila cuba memasukkan data ke dalam jadual tanpa menyatakan nilai secara eksplisit untuk lajur tidak boleh dibatalkan yang kekurangan nilai lalai, MySQL mungkin membuang ralat yang menyatakan "Field doesn't have a default value" (Ralat No. 1364).

Perihalan Masalah

Seorang pengguna telah menghadapi ralat ini apabila memasukkan ke dalam jadual dengan skema berikut:

CREATE TABLE try (
  name VARCHAR(8),
  CREATED_BY VARCHAR(40) NOT NULL
);
Salin selepas log masuk

Pencetus telah dicipta untuk mengisi secara automatik CREATED_BY medan dengan nama pengguna:

CREATE TRIGGER autoPopulateAtInsert
BEFORE INSERT ON try
FOR EACH ROW
SET NEW.CREATED_BY = USER();
Salin selepas log masuk

Walau bagaimanapun, cuba memasukkan baris menggunakan pertanyaan berikut:

INSERT INTO try (name) VALUES ('abc');
Salin selepas log masuk

masih menghasilkan mesej ralat.

Penyelesaian

Mesej ralat adalah hasil daripada mod SQL STRICT_TRANS_TABLES yang ditetapkan dalam Fail konfigurasi MySQL (my.ini atau serupa). Mod ini menguatkuasakan peraturan ketat mengenai nilai lalai untuk lajur yang tidak boleh dibatalkan. Untuk menyelesaikan isu tersebut, pengguna hendaklah:

  1. Buka fail konfigurasi MySQL.
  2. Cari tetapan STRICT_TRANS_TABLES dan alih keluar atau lumpuhkannya.
  3. Mulakan semula perkhidmatan MySQL .

Sebagai alternatif, pengguna boleh mencipta nilai lalai untuk Medan CREATED_BY menggunakan pernyataan ALTER TABLE. Walau bagaimanapun, pendekatan ini mungkin tidak sesuai jika pencetus bertujuan untuk menetapkan nilai secara dinamik.

Atas ialah kandungan terperinci Mengapa MySQL Throw Ralat 1364: 'Bidang Tidak Mempunyai Nilai Lalai'?. 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