Memasukkan data ke dalam pangkalan data SQL Server memerlukan menyediakan nilai untuk semua lajur, terutama kunci utama. Jika lajur ditetapkan sebagai
dan tidak mempunyai nilai lalai, cuba memasukkan akan mencetuskan ralat. NOT NULL
NULL
Pertimbangkan pernyataan SQL ini:
Ini cuba menambah dua baris ke jadual
<code class="language-sql">INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())</code>
dan role
lajur - yang terakhir dengan cap waktu lalai). Lajur utama utama, name
, ditinggalkan. created
id
SQL Server menuntut nilai utama utama yang jelas atau penjanaan automatik. Oleh kerana
tidak ditentukan dan tidak mempunyai lalai, SQL Server menyerahkannya. Walau bagaimanapun, id
ditakrifkan sebagai NULL
, mencegah id
penyisipan. Mesej ralat yang dihasilkan ialah: NOT NULL
NULL
<code>Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'id', table 'CMT_DEV.dbo.role'; column does not allow nulls. INSERT fails. The statement has been terminated.</code>
Penyelesaiannya adalah untuk memastikan
sentiasa menerima nilai yang sah. Kaedah yang paling biasa adalah menggunakan auto-increment:
id
Menggunakan SQL Server Management Studio (SSMS):
Buka jadual
role
Pilih lajur id
di bawah "spesifikasi identiti," set "adalah identiti" kepada "ya" dan "kenaikan identiti" kepada 1. Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tidak Dapat Memasukkan Nilai NULL ke dalam 'id' Lajur dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!