すでに作成されているMySQL列にNOTNULL制約を追加するにはどうすればよいですか?
これは、ALTERTABLEを使用して実現します。まずテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(100) -> ); Query OK, 0 rows affected (0.86 sec)
表の説明を確認しましょう-
mysql> desc DemoTable;
これにより、次の出力が生成されます-
+-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(100) | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+ 2 rows in set (0.01 sec)
これは、最初はNOTNULLに設定されていなかった他の列「StudentName」にNOTNULL制約を追加するためのクエリです-
mysql> alter table DemoTable modify StudentName varchar(100) NOT NULL; Query OK, 0 rows affected (1.57 sec) Records: 0 Duplicates: 0 Warnings: 0
テーブルの説明をもう一度確認しましょう-
mysql> desc DemoTable;
これにより、次の出力が生成されます-
+-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(100) | NO | | NULL | | +-------------+--------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
-
作成済みのMySQLテーブルに新しい列を作成して入力するにはどうすればよいですか?
最初にテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Value1 int, -> Value2 int -> ); Query OK, 0 rows affected (0.77 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(10,10); Query OK, 1 row affected (0
-
列名としてSERIALを使用すると、MySQLに「NOTNULL」がすでに含まれていますか?
MySQLでは、SERIALはBIGINT UNSIGNED NOT NULLAUTO_INCREMENTUNIQUEのエイリアスです。したがって、SERIALの後にNOT NULLを使用しないでください。これは、定義の一部としてNOTNULLがすでに含まれているためです。 例を見て、テーブルを作成しましょう。ここに、「serial」という名前の列があります- mysql> create table DemoTable ( Id serial ); Query OK, 0 rows affected (0.42 sec) 挿入コマンドを使用して、テーブルにい