Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Memasukkan Nilai ke dalam Lajur Identiti, dan Bagaimana Saya Membetulkannya?

Mengapa Saya Tidak Boleh Memasukkan Nilai ke dalam Lajur Identiti, dan Bagaimana Saya Membetulkannya?

Patricia Arquette
Lepaskan: 2025-01-19 09:12:10
asal
734 orang telah melayarinya

Why Can't I Insert a Value into an Identity Column, and How Do I Fix It?

Menyelesaikan masalah Ralat "Tidak Dapat Memasukkan Nilai Eksplisit untuk Lajur Identiti"

Apabila anda cuba memasukkan nilai secara manual ke dalam lajur identiti (lajur memberikan nilai jujukan unik secara automatik oleh pangkalan data), anda akan menghadapi ralat "Tidak boleh memasukkan nilai eksplisit untuk lajur identiti dalam jadual 'jadual' apabila IDENTITY_INSERT adalah ditetapkan kepada MATI." Ini berlaku kerana lajur identiti direka bentuk untuk mengurus sendiri nilainya.

Penyelesaian: Mendayakan IDENTITY_INSERT buat sementara waktu

Penyelesaian adalah untuk mendayakan sementara IDENTITY_INSERT untuk jadual tertentu. Tetapan ini mengatasi penjanaan nilai automatik. Inilah prosesnya:

  1. Dayakan IDENTITY_INSERT: Gunakan arahan SQL berikut, gantikan TableName dengan nama jadual anda:
<code class="language-sql">SET IDENTITY_INSERT TableName ON</code>
Salin selepas log masuk
  1. Lakukan INSERT: Kini anda boleh melaksanakan pernyataan INSERT anda dengan nilai eksplisit untuk lajur identiti. Contohnya:
<code class="language-sql">INSERT INTO TableName (IdentityColumnName, Column2, Column3)
VALUES (100, 'Some Value', 'Another Value');</code>
Salin selepas log masuk
  1. Lumpuhkan IDENTITY_INSERT: Yang penting, selepas sisipan, lumpuhkan IDENTITY_INSERT untuk memulihkan kelakuan lajur identiti automatik:
<code class="language-sql">SET IDENTITY_INSERT TableName OFF</code>
Salin selepas log masuk

Contoh Ilustrasi:

Pertimbangkan jadual Orders dengan lajur identiti OrderID. Untuk memasukkan rekod dengan OrderID tertentu, anda perlu melakukan ini:

<code class="language-sql">SET IDENTITY_INSERT Orders ON;

INSERT INTO Orders (OrderID, CustomerID, OrderDate)
VALUES (12345, 1, '2024-03-08');

SET IDENTITY_INSERT Orders OFF;</code>
Salin selepas log masuk

Ini membolehkan anda memasukkan nilai 12345 ke dalam lajur OrderID. Ingat untuk sentiasa melumpuhkan IDENTITY_INSERT selepas sisipan anda untuk mengekalkan integriti lajur identiti anda.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memasukkan Nilai ke dalam Lajur Identiti, dan Bagaimana Saya Membetulkannya?. 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