SQL で「ID 列に明示的な値を挿入できません」エラーがスローされるのはなぜですか?その修正方法は何ですか?
Jan 19, 2025 am 09:22 AM「ID 列に明示的な値を挿入できません」SQL エラーのトラブルシューティング
SQL 挿入操作中に「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません」というエラーが発生しましたか?このガイドでは、その原因と解決策を説明します。 このエラーは、値が自動的に生成される ID 列として指定された列に手動で値を割り当てようとすると発生します。
SQL の ID 列について
ID 列は自動的に増加するデータベース列で、通常は主キーまたは一意の識別子として機能します。 データベースは増分プロセスを管理し、通常は新しい行ごとに固定ステップ値 (通常は 1) を追加します。 これにより、データベース操作と参照整合性にとって不可欠な、一意の連続した値が保証されます。
エラーの根本原因
テーブルの IDENTITY_INSERT
プロパティが OFF
に設定されているときに ID 列に値を直接挿入しようとすると、エラーが発生します。 この設定により、ID 列への手動での値の割り当てが防止されます。
エラーの解決: IDENTITY_INSERT
の有効化と無効化
この解決策には、影響を受けるテーブルの IDENTITY_INSERT
を一時的に有効にして手動挿入を許可することが含まれます。 プロセスは次のとおりです:
-
IDENTITY_INSERT
を有効にする: 次のコマンドを実行します。[TableName]
をテーブルの名前に置き換えます:SET IDENTITY_INSERT [TableName] ON
ログイン後にコピー -
挿入を実行します: ここで、ID 列の明示的な値を使用して挿入ステートメントを実行します。
-
IDENTITY_INSERT
を無効にする: 挿入後、すぐにIDENTITY_INSERT
を無効にして自動生成動作を復元します:SET IDENTITY_INSERT [TableName] OFF
ログイン後にコピー
これにより、後続の挿入で ID 列の自動インクリメント機能が再度使用され、データベースの整合性が維持されます。 予期しない動作を防ぐために、手動で挿入するたびに必ず IDENTITY_INSERT
を無効にしてください。
以上がSQL で「ID 列に明示的な値を挿入できません」エラーがスローされるのはなぜですか?その修正方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
