我正在寻找一个查询,它给出了数据库中所有表的主键,与创建它的顺序相同,例如:
CREATE TABLE a_antennaport
...
PRIMARY KEY(dateday
,neid
,cn
,srn
,sn
,pn
)
我需要输出相同顺序的字段:
dateday
,neid
,cn
,srn
,sn
,pn
我已经尝试过:
SELECT GROUP_CONCAT(COLUMN_NAME), TABLE_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = schema()
AND CONSTRAINT_NAME='PRIMARY'
GROUP BY TABLE_NAME;
答案 0 :(得分:3)
您的查询应该已经有效(事实上,确实如此。经过测试,确定无误)。只有通过group_concat()中的序号位置排序,才能确保列的顺序正确。
SELECT GROUP_CONCAT(COLUMN_NAME ORDER BY ORDINAL_POSITION), TABLE_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = schema()
AND CONSTRAINT_NAME='PRIMARY'
GROUP BY TABLE_NAME;