2013-06-24 95 views
2

我需要在SELECT語句中包含表名,以及表的一些列和唯一標識符。在select語句中包含表名

我不知道是否有可能從表中選擇表名或某種唯一標識符。

我該如何做到這一點?

+1

如果要查詢的表,那麼你已經知道表的名稱。您可以將其添加爲字符串... – Ben

+2

P.S.除非你同時使用RDBMS,否則你是否可以刪除Oracle或MySQL(它們是獨立的數據庫系統)? – Ben

回答

1

我感謝您的答覆,但我以這種方式解決了這個問題(這是太容易實際上)

select 'table1' as tableName, col1, col2 from anyTable; 
1

這會給你從你的數據庫中的所有表名,你可以調整它,你認爲合適

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' 
+1

那又如何回答唯一標識符的問題? – mustaccio

+0

謝謝,但我想獲得該表的名稱,當我在該表中執行選擇 –

1

您需要查詢數據庫的系統目錄中找到此主鍵和所有獨特表格的約束,然後選擇一個最適合您需求的方法。您可以期望找到0,1個或更多這樣的約束。

對於你使用類似

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意見以類似的方式Oracle數據庫。

相關問題