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.