我的表格如下::
id || name || Desg || Sal || deptId
1 ||ajay ||MD ||999 ||1
2 ||Kaushal ||Engg ||100 ||2
3 ||Vidhi ||HR ||5000 ||3
4 ||Sonu ||SSP ||200 ||1
5 ||Jay ||Asst Manager ||120 ||3
6 ||Uvi ||Utra ||450 ||5
id是主列。这只是一个名为person
的表。
我想获取主键列的值(此处为id)。
我的java
方法会收到表格名称& where子句将返回主列值的ArrayList。现在的问题是,基于表名,应该确定哪个列是主列。有没有可以给出值::
<<Part of Query to get values of primary column key>> where sal > 150 & deptId != 1
(方法将接收的Where子句)
答案 0 :(得分:3)
可以从INFORMATION_SCHEMA
表中提取数据库元数据,如记录here。
我认为您要查看的表格为columns
:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = '<<your schema name>>'
AND TABLE_NAME = '<<your table name>>'
AND COLUMN_KEY = 'PRI'
虽然这仅仅是为了一个简单的案例。
为了进行正确的索引分析,可以查阅statistics
表。从(有点模糊)内存中,可以使用索引名称或类型来确定索引是否是主键索引。
一旦拥有主键列名称,您就可以简单地构建另一个查询。
换句话说(未经测试):
String prim_colm = getPrimaryKeyColumn (tableName);
String newQuery = "select " + prim_colm + " from " + tableName";
然后执行newQuery
。
答案 1 :(得分:-2)
回答问题的第二部分
<<Part of Query to get values of primary column key>>
使用...
SELECT <column name> FROM <table name> WHERE....
其中&lt;列名&gt; /&lt;表名&gt;来自你决定解决的地方。查询数据库元数据或仅使用开关。