MySQLのデフォルトで値がnullではない列を追加しますか?
このためには、デフォルトのキーワードを削除する必要があります。構文は次のとおりです。
ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType NOT NULL AFTER yourColumnName;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table AddingColumnDefaultValueNOTNULL -> ( -> Id int NOT NULL AUTO_INCREMENT, -> FirstName varchar(20), -> LastName varchar(20), -> Age int, -> Address varchar(100), -> Salary int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.58 sec)
次に、テーブルの説明を確認します。クエリは次のとおりです。
mysql> desc AddingColumnDefaultValueNOTNULL;
出力は次のとおりです。
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstName | varchar(20) | YES | | NULL | | | LastName | varchar(20) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | Address | varchar(100) | YES | | NULL | | | Salary | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 6 rows in set (0.11 sec)
デフォルトで値がNULLではない列を追加するためのクエリは次のとおりです。
mysql> alter table AddingColumnDefaultValueNOTNULL add column City varchar(20) NOT NULL after Age; Query OK, 0 rows affected (2.17 sec) Records: 0 Duplicates: 0 Warnings: 0
これで、テーブルの説明をもう一度確認できます。テーブルには、「City」という名前の新しい列が1つあり、そのデフォルト値はデフォルトではNULLではありません。
テーブルの説明を確認するためのクエリは次のとおりです。
mysql> desc AddingColumnDefaultValueNOTNULL;
出力は次のとおりです。
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstName | varchar(20) | YES | | NULL | | | LastName | varchar(20) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | City | varchar(20) | NO | | NULL | | | Address | varchar(100) | YES | | NULL | | | Salary | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 7 rows in set (0.02 sec)
Cityフィールドを見てください。 NULL列の値はNOです。これ自体は、CityフィールドにNULL値を設定できないことを示しています。
-
MySQLの既存の列にNOTNULL属性を設定します
NOT NULL属性を既存の列に設定するには、ALTERTABLEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1949 ( UserId int, UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec) これは、既存の列にNOTNULL属性を設定するためのクエリです- mysql> alter table DemoTable1949 modify
-
MySQLのデフォルト値をJSONタイプの列に設定しますか?
デフォルト値を設定するには、次の構文のようにDEFAULT制約を使用します- alter table yourTableName modify column yourColumnName JSON NOT NULL DEFAULT ( JSON_OBJECT() ); テーブルを作成しましょう- mysql> create table demo24 −> ( −> employee_information text −> ) −> ; Query OK, 0 rows affected (1.43 sec) これ