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を使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。