Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL SELECT LAST_INSERT_ID() para chave composta. É possível?


Sim. Você não pode ter vários campos de incremento automático em uma única tabela.
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() retorna o valor apenas para uma coluna declarada AUTO_INCREMENT . Não há função para retornar o valor em uma chave primária composta que não era gerado pelo sistema. Você já deve saber esse valor, já que acabou de fornecê-lo em um INSERT demonstração. O caso complicado seria quando um gatilho ou algo substitui o valor.