MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

単一のMySQLクエリでALTERを使用して既存のテーブルに新しい列とインデックスを追加しますか?


既存のテーブルに新しい列を追加するには、ADDを使用します。それで、新しいインデックスを追加するには、ADD INDEX()を使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(100),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.69 sec)

表の説明を確認しましょう-

mysql> desc DemoTable;

これにより、次の出力が生成されます-

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

これは、既存のテーブルに新しい列とインデックスを追加するためのクエリです-

mysql> alter table DemoTable
   -> add ArrivalDate DATETIME DEFAULT NOW(),
   -> add index(ArrivalDate);
Query OK, 0 rows affected (2.05 sec)
Records: 0 Duplicates: 0 Warnings: 0

テーブルの説明をもう一度確認しましょう-

mysql> desc DemoTable;

これにより、次の出力が生成されます-

+-------------+--------------+------+-----+-------------------+----------------+
| Field       | Type         | Null | Key | Default           | Extra          |
+-------------+--------------+------+-----+-------------------+----------------+
| Id          | int(11)      | NO   | PRI | NULL              | auto_increment |
| Name        | varchar(100) | YES  |     | NULL              |                |
| ArrivalDate | datetime     | YES  | MUL | CURRENT_TIMESTAMP |                |
+-------------+--------------+------+-----+-------------------+----------------+
3 rows in set (0.01 sec)

  1. 単一のクエリでIN()を使用してMySQLテーブルからレコードを削除する

    テーブルを作成しましょう- mysql> create table DemoTable1922    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1922(StudentNa

  2. 45日の間隔で日を追加し、出力を新しい列に表示するMySQLクエリ

    これには、date_add()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1930    (    DueTime datetime    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1930 values('2017-10-21'); Query OK, 1 row affected