2016-11-13 22 views
0

我已經完成了該查詢。 顯示名爲'somehow'的表中所有不是主鍵的列。顯示錶中不包含主鍵的所有列

這是我正在試圖獲得來自主鍵ID列不同的列標題:

SELECT cols.column_name 
FROM information_schema.table_constraints t 
JOIN information_schema.key_column_usage k 
USING(constraint_name,table_schema,table_name) 
WHERE t.constraint_type <> 'PRIMARY KEY' 
AND t.table_schema='mydb' 
AND t.table_name='somehow' 

東西是不正確的,因爲我得到一個SQL錯誤。我究竟做錯了什麼?

更新:

SELECT k.column_name 
FROM information_schema.table_constraints t 
JOIN information_schema.key_column_usage k 
USING(constraint_name,table_schema,table_name) 
WHERE t.constraint_type <> 'PRIMARY' 
AND t.table_schema='mydb' 
AND t.table_name='somehow' 

這說明正是我我想知道我得到的結果是(主鍵),我需要一切要顯示:(

+0

mySQL的,@RyanVincent – XanderNWA

+0

不幸的是,cols沒有被定義爲別名。我只是認爲cols默認用於爲表格選擇多個列。說實話,我不知道該在哪裏申報。我只是使用這些命令行來進行查詢。 @RyanVincent – XanderNWA

+0

更改爲'k.column_name' – Viney

回答

0

所有表列可在MySQL的系統表columns發現及其column_key字段包含「PRI」的情況下的列是主鍵的一部分。因此:。

select column_name 
from information_schema.columns 
where table_schema = 'mydb' 
    and table_name = 'somehow' 
    and column_key <> 'PRI'; 
+0

YESSS!謝謝,它工作! – XanderNWA

相關問題