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 进行比较时,当我尝试检查列 try 可以获得的值时,它是 ('Verkehrsunfall', 'Hochwasser', 'Sonstiges') 字符串之一。

这与我们的讲师在讲座中向我们展示的语法完全相同。我不确定是否可以将 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) ;
4

1 回答 1

24
于 2012-11-04T14:02:38.423 回答