Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erhalten Sie Primärschlüssel, die nach dem Auswählen, Aktualisieren oder Einfügen nur mit SQL betroffen sind?

SELECT LAST_INSERT_ID();

Und im Ernst, wenn Sie "primary key from insert mysql" in Google eingeben, erhalten Sie als erstes Ergebnis eine Stack Overflow-Antwort.

BEARBEITEN:Weitere Diskussionen basierend auf Kommentaren.

Wenn Sie sehen möchten, welche Zeilen von einer Aktualisierung betroffen sind, führen Sie einfach ein SELECT mit derselben WHERE-Klausel und denselben JOIN-Kriterien wie die UPDATE-Anweisung aus, z. B.:

UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

Wenn Sie in eine Tabelle einfügen, die keinen Primärschlüssel mit automatischer Inkrementierung hat, müssen Sie nichts Besonderes tun. Sie wissen bereits, was der neue Primärschlüssel ist, weil Sie ihn selbst in der INSERT-Anweisung festlegen. Wenn Sie Code wollen, der INSERT-Anweisungen verarbeiten kann, die von außerhalb des Codes kommen, der PK-Änderungen verfolgt, müssen Sie entweder die INSERT-Anweisung parsen oder den aufrufenden Code Informationen über den Primärschlüssel bereitstellen lassen.