MySQLでは、列にデフォルト値を追加したり、デフォルト値で列を追加したりする必要がある場合があります。 MySQLのデフォルトの制約を使用してこれを簡単に行うことができます。 MySQLにデフォルトの制約を追加する方法は次のとおりです。
MySQLにデフォルトの制約を追加する方法
MySQLにデフォルトの制約を追加する手順は次のとおりです。 CREATE TABLEステートメントを使用してテーブルを作成している間、またはALTER TABLEステートメントを使用してテーブルを作成した後に、デフォルトの制約を追加できます。これら両方のアプローチを見ていきます。
CREATETABLEを使用してデフォルトの制約を追加する方法
CREATEテーブルステートメントを使用してデフォルトの制約を追加する構文は次のとおりです。
mysql> create table table_name( column1 column1_definition DEFAULT default_value, column2 column2_definition, ... );
上記のSQLクエリでは、テーブル名 table_nameを指定する必要があります 。また、デフォルト値を追加するフィールドの列定義の後にDEFAULTを指定する必要があります。列のデフォルト値も指定する必要があります。
ボーナスリード:MySQLはグループごとに上位N行を選択
MySQLにデフォルトの制約を追加する例を次に示します。
mysql> create table sample_data( id int, order_date date, amount int DEFAULT 0 ); mysql> insert into sample_data(id, order_date) values(1,'2020-08-01'); mysql> select * from sample_data; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2020-08-01 | 0 | +------+------------+--------+
上記のSQLクエリでは、 sample_dataを作成します。 列amountのデフォルト値が0のテーブル。 ご覧のとおり、 sample_dataに値を挿入すると 、金額の値については言及していません 桁。ただし、MySQLはデフォルト値0をこの列に自動的に割り当てます。
ボーナスリード:MySQLで先週のデータを取得する方法
ALTER TABLEは、MySQLのデフォルト値で列を追加します
同様に、既存のテーブルに対してALTER TABLEステートメントを使用して、デフォルトの制約を追加できます。構文は次のとおりです
mysql> ALTER TABLE table_name ALTER column_name SET DEFAULT default_value;
上記のALTERTABLEステートメントでは、 table_name、column_nameについて言及する必要があります。 およびdefault_value
次に、ALTERTABLEを使用してデフォルトの制約を追加する例を示します。 order_dateのデフォルト値を設定するとします。 上記の表の列sample_data
mysql> ALTER TABLE sample_data ALTER order_date SET DEFAULT '2020-08-03'; mysql> insert into sample_data(id) values(2); mysql>select * from sample_data; mysql> select * from sample_data; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2020-08-01 | 0 | | 2 | 2020-08-03 | 0 | +------+------------+--------+
上記のSQLクエリでは、デフォルトの制約を order_dateに追加しました。 桁。その後、 idのみを提供します INSERTステートメントの列の値。それでも、MySQLは自動的に order_dateにデータを入力します および金額 デフォルト値に基づく列。
ボーナスリード:MySQLコピーデータベース
列のデフォルト値を削除する方法
列のデフォルト値を削除する必要がある場合は、DROPDEFAULTステートメントを使用してください。 DROPDEFAULTクエリの構文は次のとおりです。
mysql> ALTER TABLE table_name ALTER column_name DROP DEFAULT;
上記のクエリでは、 table_nameを指定する必要があります およびcolumn_name DEFAULT制約を削除する対象。
SQLのDROPDEFAULT制約の例を次に示します。
mysql> ALTER TABLE sample_data ALTER order_date DROP DEFAULT;
上記のステートメントでは、 order_dateからデフォルトの制約を削除しました 列。
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。