-1

如何获取插入导致的主键(假设通过查看显示键知道他的名字)?如何获取受更新影响的行的主键?(与前一种情况一样,与键名无关)。如何获取从选择查询返回的主键(在查询中,即使键不是调查的字段之一)。

我需要在我的应用程序中插入、更新和选择之后运行 SQLs 命令来获取这些信息,这可能吗?我的数据库是 MySQL。

我只需要 sqls,因为我正在制作缓存查询的逻辑以适用于许多应用程序(java 和 php),并且我希望该逻辑独立于语言。

例子:

从人中选择名字

我需要在此之后执行的查询返回这些人的 pk

4

1 回答 1

0
SELECT LAST_INSERT_ID();

说真的,将“插入 mysql 的主键”放入 Google 会得到一个 Stack Overflow 答案作为第一个结果。

编辑:基于评论的更多讨论。

如果您想查看更新影响了哪些行,只需使用与 UPDATE 语句相同的 WHERE 子句和 JOIN 条件执行 SELECT,例如:

UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

如果您要插入到没有自动增量主键的表中,则无需执行任何特殊操作。您已经知道新的主键是什么,因为您在 INSERT 语句中自己设置了它。如果您想要可以处理来自将跟踪 PK 更改的代码之外的 INSERT 语句的代码,那么您需要解析 INSERT 语句,或者让调用代码提供有关主键的信息。

于 2012-09-02T04:07:43.927 回答