我在 PHP 中生成这样的 SQL 查询:
$sql = sprintf("UPDATE %s SET %s = %s WHERE %s = %s", ...);
由于该查询的几乎每个部分都是动态的,因此我需要一种方法来动态确定表的主键,这样我就有这样的查询:
$sql = sprintf("UPDATE %s SET %s=%s WHERE PRIMARY_KEY = %s", ...);
表的主键是否有 MySQL 关键字,或获取它的方法?
我以前使用 information_schema 数据库来查找此类信息,但如果我不必求助于它,那就太好了。
最佳答案
SHOW INDEX FROM <tablename>
您想要 Key_name = PRIMARY 的行
http://dev.mysql.com/doc/refman/5.0/en/show-index.html
您可能想要缓存结果——在您可能需要使用的所有表上运行 SHOW 语句需要一段时间。
关于php - MySQL:动态确定表的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893874/