Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL SELECT LAST_INSERT_ID () cho khóa ghép. Nó có khả thi không?

Đúng. Bạn không thể có nhiều trường tăng tự động trong một bảng.

CREATE TABLE foo (
  id1 int(11) NOT NULL auto_increment,
  id2 int(11) NOT NULL default '0',
  PRIMARY KEY  (id1, id2)
);

INSERT INTO foo VALUES (DEFAULT, 2);

SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1

LAST_INSERT_ID() chỉ trả về giá trị cho một cột được khai báo AUTO_INCREMENT . Không có chức năng nào trả lại giá trị trong khóa chính kết hợp không phải do hệ thống tạo ra. Bạn nên biết giá trị đó rồi, vì bạn vừa nhập giá trị đó trong INSERT tuyên bố. Trường hợp phức tạp sẽ là khi một trình kích hoạt hoặc thứ gì đó ghi đè giá trị.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ mục tháng của JavaScript Date Object bắt đầu bằng 0

  2. MySql Chèn ID cuối cùng, Trình kết nối .net

  3. MySQL - Khóa ngoại duy nhất

  4. Làm thế nào để chuyển đổi mssql script sang mysql

  5. Tối ưu hóa hiệu suất MySQL:thứ tự theo trường datetime