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

複数行の挿入の場合、MySQL LAST_INSERT_ID()関数の出力にどのような影響がありますか?


MySQL LAST_INSERT_ID()関数は最新の生成されたシーケンス番号を返すことがわかっていますが、複数の行挿入の場合は、前のによって生成されたシーケンス番号を返します。 挿入された行。

mysql> Insert into Student(Name) values('Ram'),('Mohan'),('Aryan');
Query OK, 3 rows affected (0.03 sec)
Records: 3 Duplicates: 0 Warnings: 0

上記のクエリは、複数行の挿入クエリを使用して、Studentテーブルに3つの値を挿入します。列「Id」の値は、次のクエリを使用して確認できます-

mysql> Select * from Student;

+----+-------+
| Id | Name  |
+----+-------+
| 1 | Raman  |
| 2 | Rahul  |
| 3 | Ram    |
| 4 | Mohan  |
| 5 | Aryan  |
+----+-------+

5 rows in set (0.00 sec)

Last_Insert_Id()は出力として5を返す必要がありますが、ご覧のとおり、次のように値3を返します-

mysql> Select Last_Insert_Id();

+------------------+
| Last_Insert_Id() |
+------------------+
| 3                |
+------------------+

1 row in set (0.00 sec)

3は、上記の複数行挿入クエリで最初に挿入された行の値であるため、値3を返します。


  1. MySQLのCHAR()の逆関数は何ですか

    CHAR()の逆関数は、MySQLのASCII()またはORD()です。ここで、ASCII()は左端の文字の数値を返しますが、ORD()は引数の左端の文字の文字コードを返します まずテーブルを作成しましょう- mysql> create table DemoTable (    Value int,    Value1 char(1),    Value2 char(1) ); Query OK, 0 rows affected (0.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mys

  2. MySQLクエリにIFステートメントを挿入する適切な方法は何ですか?

    MySQLクエリにIFステートメントを挿入するには、次の構文を使用します:: select yourColumnName ,if(yourCondition, yourStatement1,yourStatement2) from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1571    -> (    -> Id int,    -> Value int    -> ); Query OK, 0 rows