1. ホーム
  2. mysql

[解決済み] MySQLで既存のカラムにnot null制約を追加する方法

2022-04-13 08:21:13

質問

Person という名前のテーブルがあり、以下のカラム名があります。

P_Id(int),
LastName(varchar),
FirstName (varchar).

を与えるのを忘れていました。 NOT NULL への制約 P_Id .

今度は、以下のクエリで追加してみました。 NOT NULL という既存のカラムに制約をかける。 P_Id ,

1. ALTER TABLE  Person MODIFY  (P_Id NOT  NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT  NULL NOT NULL (P_Id);

シンタックスエラーが発生するのですが・・・。

どうすればいいですか?

ただ ALTER TABLE... MODIFY... クエリを作成し NOT NULL を既存のカラムの定義に追加します。例えば

ALTER TABLE Person MODIFY P_Id INT(11) NOT NULL;

注意点としては、「1. フル を使用する場合は、再度列の定義を行います。 MODIFY クエリで使用することができます。カラムに、たとえば DEFAULT 値、あるいはカラムのコメントを指定する必要があります。 MODIFY 文は、データ型と NOT NULL でないと、失われます。このような災難から守るための最も安全な方法は、列の定義を SHOW CREATE TABLE YourTable クエリを作成し、そのクエリに NOT NULL 制約を設定し、それを ALTER TABLE... MODIFY... のクエリを作成します。