3

我需要在 SELECT 语句中包含表名,以及一些列和表的唯一标识符。

我不知道是否可以从该表中的选择或某种唯一标识符中获取表名。

我怎样才能做到这一点?

4

3 回答 3

2

感谢您的回复,但我以这种方式解决了这个问题(实际上太容易了)

select 'table1' as tableName, col1, col2 from anyTable;
于 2013-06-25T08:10:52.573 回答
1

您将需要查询数据库的系统目录以查找表的主键和所有唯一约束,然后选择最适合您需要的一个。您可以期望找到 0、1 或更多这样的约束。

对于 Oracle 数据库,您可以使用类似

  select 
   c.constraint_name,
   col.column_name
  from
   dba_constrants c,
   dba_cons_columns col
  where
   c.table_name = 'YOURTABLE'
   and c.constraint_type in ('P', 'U')
   and c.constraint_name = col.constraint_name
  order by
   c.constraint_name, 
   col.position

对于 MySQL,您将以类似的方式查询 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 和 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 视图。

于 2013-06-24T16:28:22.863 回答
0

这将为您提供数据库中的所有表名,您可以根据需要对其进行调整

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
于 2013-06-24T16:09:36.063 回答