Khi tạo bảng trong PostgreSQL, các tên ràng buộc mặc định sẽ được gán nếu không được cung cấp:
CREATE TABLE example (
a integer,
b integer,
UNIQUE (a, b)
);
Nhưng việc sử dụng ALTER TABLE
để thêm một ràng buộc thì có vẻ như một cái tên là bắt buộc:
ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b);
Điều này đã gây ra một số mâu thuẫn đặt tên trên các dự án tôi đã làm việc và dẫn đến các câu hỏi sau:
Có cách nào đơn giản để thêm một ràng buộc vào một bảng còn tồn tại với tên mà nó sẽ nhận được nếu được thêm vào trong quá trình tạo bảng không?
Nếu không, có nên tránh hoàn toàn các tên mặc định để tránh sự mâu thuẫn không?