我需要在SELECT语句中包含表名,以及一些列和表的唯一标识符。
我不知道是否可以从该表中的select或某种唯一标识符中获取表名。
我怎样才能做到这一点?
答案 0 :(得分:1)
这将为您提供数据库中的所有表名,您可以根据需要进行调整
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
答案 1 :(得分: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视图。
答案 2 :(得分:1)
我感谢您的回复,但我以这种方式解决了这个问题(实际上太容易了)
select 'table1' as tableName, col1, col2 from anyTable;