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

Obter chaves primárias afetadas após selecionar, atualizar ou inserir apenas usando SQL?

SELECT LAST_INSERT_ID();

E, falando sério, colocar "chave primária de insert mysql" no Google fornece uma resposta do Stack Overflow como o primeiro resultado.

EDIT:mais discussão baseada em comentários.

Se você quiser ver quais linhas são afetadas por uma atualização, basta fazer um SELECT com a mesma cláusula WHERE e critérios JOIN que a instrução UPDATE, por exemplo:
UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

Se você estiver inserindo em uma tabela que não possui uma chave primária de incremento automático, não será necessário fazer nada de especial. Você já sabe qual é a nova chave primária, porque você mesmo a configurou na instrução INSERT. Se você quiser um código que possa lidar com instruções INSERT provenientes de fora do código que acompanhará as alterações de PK, será necessário analisar a instrução INSERT ou fazer com que o código de chamada forneça informações sobre a chave primária.