12

重複の可能性:
列「mary」が存在しません

チェック制約を介して列に受け入れることができる値をチェックする必要があります。これは大学の課題のためなので、チェック制約を使用する必要があります。

このコードを使用して、制約を作成し、テーブルに追加します。

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

このエラーから取得すると、列 typ と列 verkehrsunfall を比較しようとします。ここで、列が取得できる値を確認しようとすると、('Verkehrsunfall'、'Hochwasser'、'Sonstiges') 文字列の 1 つです。

これは、講師が講義で示した構文とまったく同じです。varchar と check を比較できるかどうかわかりません。または、私は何を間違っていますか?

講義の例は次のとおりです。

CREATE TABLE Professoren 
(PersNr INTEGER PRIMARYKEY,
 Name VARCHAR( 3 0 ) NOT NULL ,
 Rang CHAR(2) CHECK (Rang in ('C2' ,'C3' ,'C4')) , 
 Raum INTEGER UNIQUE) ;
4

1 に答える 1

24
于 2012-11-04T14:02:38.423 に答える