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

MySQLの自動インクリメントIDを予約しますか?


MySQLの自動インクリメントIDを予約するための構文は、次のとおりです-

START TRANSACTION;
insert into yourTableName values(),(),(),();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @anyVariableName;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table reservingAutoIncrementDemo
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY
   -> );
Query OK, 0 rows affected (0.45 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into reservingAutoIncrementDemo values(),(),(),();
Query OK, 4 rows affected (0.15 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select *from reservingAutoIncrementDemo;
+--------+
| UserId |
+--------+
| 1      |
| 2      |
| 3      |
| 4      |
+--------+
4 rows in set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)

これは、MySQLauto_incrementedIDを予約するためのクエリです-

mysql> SELECT LAST_INSERT_ID() INTO @IncrementedValue;
Query OK, 1 row affected (0.00 sec)

予約されたauto_incremented値を確認しましょう。クエリは次のとおりです-

mysql> select @IncrementedValue;

これが出力です-

+-------------------+
| @IncrementedValue |
+-------------------+
| 1                 |
+-------------------+
1 row in set (0.00 sec)

  1. MySQLの単一のパラメータに複数のIDを渡しますか?

    複数のIDを単一のパラメーターに渡すには、FIND_IN_SET()を使用します。まずテーブルを作成しましょう- mysql> create table  DemoTable1817      (      EmployeeName varchar(20),      CountryName varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコード

  2. MySQLの対応する重複IDから最大量を表示する

    対応する重複IDから最大量を表示するには、MAX()をGROUPBY句とともに使用します- mysql> create table DemoTable2003 (    CustomerId int,    Amount int ); Query OK, 0 rows affected (0.65 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2003 values(101,560); Query OK, 1 row affected (0.12 sec