我正在用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语句需要花费一些时间。