既存の MySQL 列に NOT NULL 制約を設定する
データの整合性を確保する場合、既存の列に NOT NULL 制約を追加することが一般的な要件となることがあります。この問題に対処するために必要な手順を見てみましょう。
次の列を持つ「person」テーブルの場合を考えてみましょう:
<code class="sql">P_Id (int) LastName (varchar) FirstName (varchar)</code>
ただし、P_Id 列には NOT NULL 制約がありません。次のようなクエリを使用して制約を追加しようとすると、構文エラーが発生しました:
<code class="sql">ALTER TABLE Person MODIFY (P_Id NOT NULL); ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id);</code>
NOT NULL 制約を効果的に追加するには、列全体を含む ALTER TABLE... MODIFY... クエリを利用します。意味。サンプル クエリは次のとおりです。
<code class="sql">ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;</code>
注意: デフォルト値や列のコメントを含め、列定義全体が MODIFY クエリで指定されていることを確認してください。これらの要素を省略すると、列から削除されます。
最大限の安全性を確保するために、SHOW CREATE TABLE YourTable クエリを使用して列定義を抽出します。 NOT NULL 制約を組み込むように定義を変更し、それを ALTER TABLE... MODIFY... クエリに貼り付けます。このアプローチにより、重要な列プロパティが失われるリスクが最小限に抑えられます。
以上が既存の MySQL 列に NOT NULL 制約を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。