2012-04-30 8 views
4

誰かがこの難しさで私を助けてくれますか?sql - COMPOSITEキーの一意性を確認する

それが有効であるかどうか私は、検証の小さな部分は、私は私の主キーが、この場合に

SELECT order_id, COUNT(order_id) 
FROM temp_order 
GROUP BY order_id 
HAVING (COUNT(order_id) > 1) 

一意であることを確認し、ORDER_IDある場合エンティティ整合性から成り、いくつかのデータをチェックしたいと思います主キー。このクエリは正常に動作します。

問題:ORDER_ID、PRODUCT_ID:

私は今、2つのフィールドで構成された複合主キーを持つ別のテーブルtemp_orditemを持っています。

プライマリキーが一意であるかどうか(つまり、2つのフィールドの組み合わせ)を確認するにはどうすればよいですか?次のことができますか?

SELECT order_id, product_id, COUNT(order_id), COUNT(product_id) 
FROM temp_order 
GROUP BY order_id, product_id 
HAVING (COUNT(order_id) > 1 AND COUNT(product_id)>1) 

答えて

10

私はちょうどこれを記述します。

SELECT order_id, product_id, COUNT(*) AS x 
FROM temp_order 
GROUP BY order_id, product_id 
HAVING x > 1 
+1

1、5秒:) – Chad

10

これはあなたが必要とするクエリです:

select order_id, product_id, count(*) 
from temp_order 
group by order_id, product_id 
having count(*) > 1 
+2

+1で私を倒す、であなたを倒します5秒;-) –

関連する問題