Khi cố gắng sử dụng mệnh đề WHERE NOT EXISTS
để tránh thêm hàng có giá trị trùng lặp trong cột age
, tôi nhận được lỗi syntax error at or near "WHERE"
.KHÔNG CÓ TÌNH TRẠNG trong PostgreSQL cho lỗi cú pháp
Tại sao nó lại xảy ra lỗi cú pháp? Tôi đang sử dụng Postgresql 9.1.
SQL
INSERT INTO live.users ("website", "age")
values ('abc', '123')
WHERE NOT EXISTS (SELECT age FROM live.users WHERE age = 123);
Lỗi
ERROR: syntax error at or near "WHERE"
LINE 6: WHERE NOT EXISTS (SELECT age FROM live.users W...
Nếu bạn muốn ngăn các giá trị trùng lặp trong một cột, sẽ tốt hơn nếu thêm một 'ràng buộc duy nhất' vào cột đó. (ALTER TABLE live.users THÊM LỆNH age_unique UNIQUE (tuổi)) –