MySQL查询information_schema.KEY_COLUMN_USAGE返回多行时如何准确获取当前主键列名
获取MySQL表当前有效主键列名的实现
初始问题
开发者需要在PHP脚本中获取applicants表的主键列名,最初编写的元数据查询语句为:
SELECT COLUMN_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'applicants' AND CONSTRAINT_NAME = 'PRIMARY'
执行该语句后返回了多组非预期结果,返回的列值包含applicant_id、itemid、两个重复的applicantId,但该表当前实际生效的主键仅为applicantId,需要调整查询逻辑,仅返回表当前有效的主键列名。
有效解决方式
经过实际验证,使用以下语句可以精准获取目标表的主键信息:
SHOW KEYS FROM 目标表名 WHERE Key_name = 'PRIMARY'
该语句执行后可正确匹配到applicants表的实际主键列applicantId,不会出现之前查询返回冗余、重复元数据的问题。
内容的提问来源于stack exchange,提问作者s.k.paul
相关产品推荐
相关产品推荐

