非常に多くのデータベース スクリプトの形式は次のとおりです。
IF NOT EXISTS(SELECT * FROM Countries WHERE Name = 'France')
INSERT INTO(Countries)
しかし、私は人々がそうしているのを見てきました:
IF NOT EXISTS(SELECT CountryID FROM Countries WHERE Name = 'France')
INSERT INTO(Countries)
さらには:
IF NOT EXISTS(SELECT 1 FROM Countries WHERE Name = 'France')
INSERT INTO(Countries)
後者の利点は、より効率的であると思われます。クエリは実際にはサブクエリの列を使用しないため、それらを戻さない方が速い場合があります。しかし、奇妙に見えるので、一部の人を混乱させるのではないかと思います。とにかく、実際の実行時間に違いはありますか?