php - MySQL:动态确定表的主键

标签 php sql mysql primary-key

我在 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/

相关文章:

mysql - sql复杂树行

sql - 如何使用 “blank”值更新列

php - 数据发送后,MySQL出现空白页

php - 通过将 null/empty 最后留空来对 laravel 集合进行排序

sql - 处理 MySQL 中缺失的列

javascript - 文本区域中的单词自动完成(单词建议)

php - 我如何使用 MySQL 和整个 LAMP 处理每天 5M 事务?

MySQL:数据截断:不正确的日期时间值: '2006-10-01 02:22:44'

php - 如何在 PHP 中实现梯形法?

php - 使用 PHP 在 MySQL 表中搜索 Base64 字符串