thể trùng lặp:
Column ‘mary’ does not exist"Cột 'x' không tồn tại" lỗi cho chuỗi chữ 'x' trong PostgreSQL
Tôi cần phải kiểm tra các giá trị có thể được chấp nhận một cột thông qua ràng buộc kiểm tra. Tôi cần phải sử dụng ràng buộc kiểm tra, bởi vì đây là một bài tập đại học.
Tôi sử dụng mã này để tạo và thêm ràng buộc vào bảng.
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’));
Đây là lỗi tôi nhận được:
ERROR: column "’verkehrsunfall’" does not exist
Như tôi đã nhận được từ lỗi này nó cố gắng để so sánh cột typ với cột verkehrsunfall, nơi như tôi cố gắng để kiểm tra các giá trị mà cột thử có thể nhận được là một trong các chuỗi ('Verkehrsunfall', 'Hochwasser', 'Sonstiges').
Đây chính xác là cú pháp giống như những gì giảng viên của chúng tôi đã cho chúng tôi thấy tại bài giảng. Tôi không chắc chắn nếu nó có thể so sánh varchars với kiểm tra? Hay tôi đang làm gì sai?
Dưới đây là ví dụ từ bài giảng:
CREATE TABLE Professoren
(PersNr INTEGER PRIMARYKEY,
Name VARCHAR(3 0) NOT NULL ,
Rang CHAR(2) CHECK (Rang in ('C2' ,'C3' ,'C4')) ,
Raum INTEGER UNIQUE) ;
Đây có phải là (http://stackoverflow.com/q/13196572/398670) từ cùng một tài liệu khóa học không? Thời gian làm cho nó có vẻ như nó có thể là một số giảng viên đã chỉnh sửa SQL trong một trình xử lý văn bản và đưa nó ra dưới dạng PDF hoặc các ghi chú trên trang web mà sinh viên đã sao chép và dán ... –
Cú pháp là chính xác nếu bạn sử dụng dấu nháy đơn chính xác: http://www.sqlfiddle.com/#!12/fb4ec –
Chỉ cần một FYI quy ước đặt tên của bạn là không tốt. Hoặc sử dụng dưới điểm số như first_name hoặc nếu bạn muốn đi những gì các tuyến đường lý tưởng ít hơn bạn có thể làm "FirstName". Không pha trộn và kết hợp các thủ đô và dấu gạch dưới. Điều này nói chung là đặt tên, nhưng cụ thể đối với postgres tôi sẽ bám theo điểm số để phân tách các từ và không sử dụng chữ in hoa. – Kuberchaun