Tôi có một dự án nuôi thú cưng SaaS để lập hóa đơn. Trong đó, tôi muốn khách hàng của tôi bắt đầu với số vé 1001. Rõ ràng, tôi không thể sử dụng trường tự động đơn giản trong Postgres và chỉ thêm 1000 vào giá trị, bởi vì tất cả khách hàng của tôi sẽ chia sẻ cùng một cơ sở dữ liệu và cùng một bảng tickets
.. Tôi đã thử sử dụng một kiểu cột nguyên và truy vấn (giả SQL) SELECT LATEST number FROM tickets WHERE client_id = [current client ID]
để lấy số mới nhất, và sau đó sử dụng số đó + 1
để nhận số number
tiếp theo. Vấn đề là với sự đồng thời, nó có thể dễ dàng cho hai vé để kết thúc với cùng một con số theo cách này. số lượng tôi cần để có thể làm điều này trong Django hoặc với SQL thô (vs sử dụng Bash hoặc bất cứ điều gì khác của loại).Cách thích hợp để tự sắp xếp một cột trong Postgres là gì?
Tôi không tìm cách ép buộc ví dụ của mình hoạt động. Tôi chỉ đang tìm một giải pháp cho vấn đề của tôi là cần tăng số lượng vé độc lập cho mỗi khách hàng.
Có thể dupe: http://stackoverflow.com/questions/6046085/postgresql-sequence-that-ensure-a-unique-id –
Không trùng lặp vì tìm kiếm một số duy nhất. Tôi đang tìm số tiếp theo theo thứ tự liên quan đến một trường khác (trường khách hàng). Trong thực tế, tôi nói rằng tôi không thể sử dụng một trường tự động (tức là, nối tiếp). – orokusaki
OK, giờ tôi đã hiểu. Hy vọng câu trả lời của tôi phù hợp với bạn (hoặc, tốt hơn, một người nào đó có thứ gì đó thanh lịch hơn). –