2016-09-15 22 views
0

問題文は次のとおりです。SQLクエリの主キー条件を確認する方法は?

W(A、B)をリレーションスキーマとします。 AのドメインはINTEGERであり、BのドメインはVARCHAR(5)である。

Aは、そうでない場合W.の 主キーである場合、Aは、主キーでない場合は、その後、 クエリはA-値を返す必要があり、すなわち、リターンをWでタプルのA-値をSQLクエリを書きます主要な属性が侵害されたWのタプルの数。

SQLクエリの主キー条件を確認するにはどうすればよいですか? SQL-SERVER

+0

あなたがUNIQUE制約でそれを設定した場合どのように主キーは、違反するのでしょうか? – Actorclavilis

+2

すべてのDBMSタグを削除しました。実際に使用しているものを自由に追加してください。また、あなたの質問を明確にする必要があります。投稿されているので意味がありません。 –

+0

plzからコードを送信:-) –

答えて

0

私は次のようであるこの問題に対する答えを考え出した:

SELECT W."A" FROM "W" W WHERE NOT EXISTS 
(SELECT W1."A" FROM "W" W1,"W" W2 WHERE 
W1."A" = W2."A" AND W1."B" <> W2."B") 
UNION 
SELECT DISTINCT W."A" FROM "W" W WHERE EXISTS 
(SELECT * FROM "W" W1,"W" W2 WHERE W."A" = W1."A" AND 
W1."A" = W2."A" AND W1."B" <> W2."B") 
0

あなたはあなたがそのようなテーブルとしてINFORMATION_SCHEMA.TABLE_CONSTRAINTSを使用することができ、テーブルの制約(特に主キー)を確認するために照会する場合:

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE TABLE_NAME='YourTable' 
--If you only want the column that has the CONSTRAINT_TYPE = 'PRIMARY KEY' 
--AND CONSTRAINT_TYPE = 'PRIMARY KEY' 

あなたの質問に答えるかどうか教えてください。

関連する問題