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

MySQLで次の自動インクリメントIDを取得するにはどうすればよいですか?


MySQLには、自動インクリメントを実行するためのAUTO_INCREMENTキーワードがあります。 AUTO_INCREMENTの開始値は1で、これがデフォルトです。新しいレコードごとに1ずつ増加します。

MySQLで次の自動インクリメントIDを取得するには、MySQLの関数last_insert_id()を使用するか、SELECTを使用してauto_incrementを使用します。

自動インクリメントとして「id」を使用してテーブルを作成します。

mysql> create table NextIdDemo
   -> (
   -> id int auto_increment,
   -> primary key(id)
   -> );
Query OK, 0 rows affected (1.31 sec)

テーブルにレコードを挿入します。

mysql> insert into NextIdDemo values(1);
Query OK, 1 row affected (0.22 sec)

mysql>  insert into NextIdDemo values(2);
Query OK, 1 row affected (0.20 sec)

mysql>  insert into NextIdDemo values(3);
Query OK, 1 row affected (0.14 sec)

すべてのレコードを表示します。

mysql> select *from NextIdDemo;

以下は出力です。

+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.04 sec)

上記に3つのレコードを挿入しました。したがって、次のIDは4でなければなりません。

次のIDを知るための構文は次のとおりです。

SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "yourDatabaseName"
AND TABLE_NAME = "yourTableName"

以下はクエリです。

mysql> SELECT AUTO_INCREMENT
    -> FROM information_schema.TABLES
    -> WHERE TABLE_SCHEMA = "business"
    -> AND TABLE_NAME = "NextIdDemo";

次の自動インクリメントを表示する出力は次のとおりです。

+----------------+
| AUTO_INCREMENT |
+----------------+
|              4 |
+----------------+
1 row in set (0.25 sec)

  1. MySQLで2つの列の値のうち最大のものを取得するにはどうすればよいですか?

    MySQLで2つの列の値のうち最大のものを取得するには、GREATEST()関数を使用する必要があります。構文は次のとおりです。 select greatest(yourColumnName1,yourColumnName2) AS anyAliasName from yourTableName;  最初にテーブルを作成しましょう: mysql> create table DemoTable (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Number1 int,   &

  2. MySQL CURDATE()で前日を取得するにはどうすればよいですか?

    まず、CURDATE()を使用して現在の日付を取得しましょう。現在の日付は次のとおりです- mysql> select CURDATE(); +------------+ | CURDATE() | +------------+ | 2019-06-09 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMAR