Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Setara dengan fungsi SQLServer SCOPE_IDENTITY() di mySQL?

Ini adalah apa yang anda cari:

LAST_INSERT_ID()

Menanggapi komentar OP, saya membuat tes bangku berikut:

CREATE TABLE Foo
(
    FooId INT AUTO_INCREMENT PRIMARY KEY
);

CREATE TABLE Bar
(
    BarId INT AUTO_INCREMENT PRIMARY KEY
);

INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();

CREATE TRIGGER FooTrigger AFTER INSERT ON Foo
    FOR EACH ROW BEGIN
        INSERT INTO Bar () VALUES ();
    END;

INSERT INTO Foo () VALUES (); SELECT LAST_INSERT_ID();

Ini mengembalikan:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                1 |
+------------------+

Jadi menggunakan LAST_INSERT_ID() dari tabel asli dan bukan tabel INSERT ed ke dalam pelatuk.

Sunting: Saya menyadari setelah sekian lama bahwa hasil dari SELECT LAST_INSERT_ID() ditunjukkan dalam jawaban saya salah, meskipun kesimpulan di akhir benar. Saya telah memperbarui hasilnya menjadi nilai yang benar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu MySQL Workbench?

  2. Sistem Manajemen Basis Data Relasional (RDBMS):MSSQL vs MySQL

  3. Bagaimana cara membuat pengguna MySQL hanya-baca?

  4. Cara Memeriksa Versi MySQL Anda

  5. MySQL UPDATE dan SELECT dalam satu pass