私は受け入れることができる値を確認する必要がありますチェック制約を介した列。私はチェック制約を使う必要があります、これは大学の割り当てのためです。
このコードを使用して、制約を作成してテーブルに追加します。ここで
CREATE TABLE Ereignis(
E_Id Serial PRIMARY KEY,
Typ varchar(15),
Zeitpunkt timestamp,
Ort varchar(32),
Anzahl_Pers int
);
ALTER TABLE Ereignis ADD
CONSTRAINT typ_ch CHECK (Typ in (’Verkehrsunfall’, ’Hochwasser’, ’Sonstiges’));
は私が取得エラーです:
ERROR: column "’verkehrsunfall’" does not exist
私は列の試みが得ることができる値を確認しようとして、それはverkehrsunfall列と列の標準を比較しようとすると、このエラー、からなるにつれ( 'Verkehrsunfall'、 'Hochwasser'、 'Sonstiges')の文字列の1つです。
これは、私たちの講師が講義で私たちに示したのとまったく同じ構文です。チェックとvarcharsを比較することが可能かどうかわかりませんか?または私は何を間違っているのですか?ここで
は講義からの例です:CREATE TABLE Professoren
(PersNr INTEGER PRIMARYKEY,
Name VARCHAR(3 0) NOT NULL ,
Rang CHAR(2) CHECK (Rang in ('C2' ,'C3' ,'C4')) ,
Raum INTEGER UNIQUE) ;
これはおそらく同じコース教材からですか(http://stackoverflow.com/q/13196572/398670)ですか?タイミングは、ワードプロセッサでSQLを編集し、PDFまたはWebページのメモとして学生がコピーして貼り付けた講師かもしれないようです。 –
正しい一重引用符を使用すると正しい構文になります。 http://www.sqlfiddle.com/#!12/fb4ec –
あなたの命名規則は良くありません。 first_nameのようなスコアの下で使うか、あまり理想的ではないルートを "FirstName"にすることができますか?大文字とアンダースコアを混同したり、一致させたりしないでください。これは名前を付けるのが一般的ですが、ポストグルに特有のことですが、スコアの下では単語を区切り、大文字は使用しません。 – Kuberchaun