2009-09-02 14 views
1

私はデータベースミドルウェアアプリケーションを再び使用しています。私は与えられたテーブルのすべてのキー値の名前を取得したい。指定されたテーブルのキー属性名を取得する

TABLE fooのをCREATE(INTEGER PRIMARY KEY、B VARCHAR(255))

私は 'foo' での主キーにOracleをお願いしたいと思いますし、私が取得したい「A:例えば

'

これはOracleで可能ですか?私はドキュメントを検索しようとしましたが、価値のあるものは何も見つかりませんでした。事前に

おかげ

鹿毛

答えて

1

Source:

SELECT  cols.table_name 
      , cols.column_name 
      , cols.position 
      , cons.status 
      , cons.owner 
FROM   all_constraints cons 
      , all_cons_columns cols 
WHERE  cols.table_name = 'TABLE_NAME' 
AND   cons.constraint_type = 'P' 
AND   cons.constraint_name = cols.constraint_name 
AND   cons.owner = cols.owner 
ORDER BY  cols.table_name, cols.position; 

は大文字ですべてのテーブル 名Oracleのストアとして、 大文字でTABLE_NAMEを入力してください。すぐに でこのクエリの出力を説明しましょう。 table_nameはテーブル (大文字で格納)の名前です。 column_nameは、 の一部である列の名前です。プライマリキーの一部です。 (大文字の に格納されています)の位置は、 の主キーの位置です。主キーは に複数の列を含めることができるので、 の列の順序を理解するには、プライマリキーで が非常に重要です。 ステータスは、プライマリ キーが現在有効か無効かを示します。 オーナーがテーブル を所有するスキーマを示しています。

ALL_CONSTRAINTS - ここALL_CONSTRAINTS

ALL_CONS_COLUMNSの非常に良い説明される - ここではALL_CONS_COLUMNS

+0

うわー、おかげで非常に良い説明です。私はこれが助けになると思います。ありがとうSvetlozar :-) Oracleのマニュアルページでは、これに適した検索条件は何でしたか?拘束? – Kage

+0

主キーは制約なので、はい - それは良い選択です –

+0

もう一度ありがとう:-)。 – Kage

関連する問題