SQL,为列添加更多信息

时间:2017-04-26 14:32:28

标签: sql postgresql

好的,我有一个问题有点复杂,无法解释和理解:

我有一个postgreSQL数据库,其中包含带有列的表,我想添加关于每列的一些信息,所以我创建了一个"服务表"看起来像这样:

+---------------+-----------+--------------------+----------+----------+
| ColumnName    |  ucd      |       utype        | datatype |  table   |
+---------------+-----------+--------------------+----------+----------+
| ident         | ucd:ident | utype:EntityId     | char     | Entity   |
| label         | ucd:label | utype:EntityLabel  | char     | Entity   |
| level         | ucd:level | utype:EntityLevel  | int      | Entity   |
| idAct         | ucd:Acti  | utype:ActivityId   | char     | Activity |
| label         | ucd:label | utype:ActivityLb   | char     | Activity |
| ...           | ...       | ...                | ...      | ...      |
+---------------+-----------+--------------------+----------+----------+

utype和ucd列是唯一的

我的问题是:

我在我的数据库上发出请求。

例子:从实体中选择*:

结果:

+-------+---------+-------+
| ident |  label  | level |
+-------+---------+-------+
|     1 | Entity1 |     1 |
|     2 | Entity2 |     2 |
|     3 | Entity3 |     2 |
+-------+---------+-------+

我还希望在我的查询中恢复有关我的列的所有信息:

这样的事情:

标识: ucd = ucd:ident,utype = utype:EnetityId,datatype = char

标签: ucd = ucd:label,utype = utype:EntityLabel,datatype = char

等级: ucd = ucd:level,utype = utype:EntityLevel,datatype = int

我知道如何获取查询结果的所有列名称,但我不知道如何获取有关它们的所有信息:

我有:

Select * from servicetable
where columnName = 'queryColumnName'

但是columnName在服务表中不是唯一的,所以它可能会返回多行。

我希望你能理解我的问题。谢谢

1 个答案:

答案 0 :(得分:1)

我真的不明白,但我会尝试帮助。

1)您已经在postgresql上有关于表和列的一些信息。例如:

SELECT *
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name   = 'your_table';

2)为什么不再添加一个像“AND table ='Entity'”的过滤器?

尝试详细解释您的问题。