null値を受け入れないようにMySQL列を設定する必要がある場合は、MySQLにNOTNULL制約を追加できます。 CREATE TABLEステートメントを使用してテーブルテーブルを作成するときにNOTNULL制約を追加するか、ALTERTABLEステートメントを使用して既存のテーブルにNOTNULL制約を追加できます。 MySQLにNOTNULL制約を追加する方法は次のとおりです。
MySQLにNOTNULL制約を追加する方法
MySQLで列にNOTNULL制約を追加し、既存の列にNOT NULL制約を追加し、列からNOTNULL制約を削除する手順は次のとおりです。
新しいテーブルを作成するときにMySQLでNOTNULL制約を定義する構文は次のとおりです。
column_name data_type NOT NULL;
上記のステートメントでは、 column_name に言及した後、NOTNULLを指定する必要があります。 およびそのdata_type
MySQLにNOTNULL制約を追加する例を次に示します。
mysql> create table product_sales(
id int,
amount int NOT NULL,
order_date date
);
mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| amount | int(11) | NO | | NULL | |
| order_date | date | YES | | NULL | |
+------------+---------+------+-----+---------+-------+
mysql> insert into product_sales(id, order_date)
values(1,'2020-08-01');
ERROR 1364 (HY000): Field 'amount' doesn't have a default value
上記のCREATETABLEクエリでは、 amountにNOTNULL制約を追加しました。 桁。この列にNULL値を挿入すると、MySQLはエラーを出します。
ボーナスリード:MySQLにデフォルトの制約を追加する方法
ALTERTABLEMySQLにNOTNULL制約を追加
また、ALTER TABLE…CHANGEステートメントを使用して、MySQLの既存の列にNOTNULL制約を追加することもできます。 MySQLの既存のテーブルにnull以外の制約を追加するための構文は次のとおりです。
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
上記のクエリでは、old_column_nameとnew_column_nameに同じ列名を指定しています。 new_column_nameの後には、データ型のcolumn_definitionとNOTNULLキーワードが続く必要があります。
これは、MySQLの既存の列にNOTNULL制約を追加するSQLクエリの例です。
mysql> ALTER TABLE product_sales
CHANGE
order_date
order_date DATE NOT NULL;
mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| amount | int(11) | NO | | NULL | |
| order_date | date | NO | | NULL | |
+------------+---------+------+-----+---------+-------+
上記のクエリでは、既存の列 order_dateにNOTNULL制約を追加しました。
ボーナスリード:MySQLはグループごとに上位N行を選択
NOTNULL制約を削除する方法
また、ALTERTABLE…MODIFYステートメントを使用してNOTNULL制約を削除することもできます。 MySQLでNOTNULL制約を削除するための構文は次のとおりです。
ALTER TABLE table_name MODIFY column_name column_definition;
上記のクエリでは、NOTNULL制約を削除する列名と定義を指定する必要があります。
order_dateのNOTNULL制約を削除する例を次に示します。 列。
mysql> ALTER TABLE product_sales
MODIFY order_date DATE;
mysql> describe product_sales;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| amount | int(11) | NO | | NULL | |
| order_date | date | YES | | NULL | |
+------------+---------+------+-----+---------+-------+
ボーナスリード:MySQLで先週のデータを取得する方法
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。