2009-07-24 4 views
7

私はpythonでsqlite3を使用する方法を学んでいます。私が従うテキストブックの例は、各カントリーレコードに地域、国、および人口があるデータベースです。キーワードCONSTRAINTはこのCREATE TABLE文で何をしますか

本はこう述べています。

次のスニペットは、 が作成されるテーブルには2つのエントリは、これまで地域や国のために同じ値 を持たないということ を指定するには、CONSTRAINTキーワードを使用しています。

>>> cur.execute(''' 
CREATE TABLE PopByCountry(
    Region TEXT NOT NULL, 
    Country TEXT NOT NULL, 
    Population INTEGER NOT NULL, 
    CONSTRAINT Country_Key PRIMARY KEY (Region, Country)) 
''') 

CONSTRAINT Country_Keyはここで説明してください。削除すると、PRIMARY KEY文だけで、各国がその地域の一意の名前を持つようになります。

答えて

9

Country_keyは、制約に名前を付けるだけです。これをしないと、名前が生成されます。これは、テーブルに複数の制約があり、そのうちの1つを削除する必要がある場合に便利です。制約をドロップするための一例として、

ALTER TABLE PopByCountry DROP CONSTRAINT Country_Key 
+0

これは正しいです。実際のPRIMARY KEY制約は、CONSTRAINTキーワードの有無に違いはありません。このキーワードは単に制約を識別することを可能にします。 –

+0

本当にすばやい返信をありがとう。後で制約を編集/削除するためのコマンドの簡単な例を私に与えることができれば、これを答えとしてマークします。 –

+0

私はミスポークを先に出します。制約を削除することはできますが、制約を直接編集することはできません。ただし、削除して別のものを追加することができます(実際には編集を行います) –

1

あなたが声明からCONSTRAINT Contry_Keyを省略した場合、SQLサーバーは、あなたのためにあなたのPRIMARY KEY制約の名前を生成します(PRIMARY KEY制約のタイプです)。

具体的には、CONSTRAINTを問合せに入れることによって、基本的に主キー制約の名前を指定しています。

関連する問題