Trong SQL, làm cách nào để cập nhật bảng, đặt cột thành một giá trị khác cho mỗi hàng?Làm thế nào để cập nhật các giá trị duy nhất trong SQL bằng cách sử dụng một trình tự PostgreSQL?
Tôi muốn cập nhật một số hàng trong cơ sở dữ liệu PostgreSQL, đặt một cột thành một số từ một chuỗi, trong đó cột đó có một ràng buộc duy nhất. Tôi hy vọng rằng tôi chỉ có thể sử dụng:
update person set unique_number = (select nextval('number_sequence'));
nhưng có vẻ như NEXTVAL chỉ được gọi một lần, vì vậy việc cập nhật sử dụng cùng một số cho mỗi hàng, và tôi nhận được một 'khóa trùng lặp vi phạm hạn chế duy nhất' lỗi . Tôi nên làm gì?
Cảm ơn - điều đó hoạt động. Tôi đã bị bắt bởi sub-select bởi vì tôi đã cố gắng sử dụng cùng một số thứ tự cho hai cột, nhưng tôi không thực sự cần phải làm điều đó. –
Nếu bạn muốn sử dụng lại cùng một giá trị chuỗi sau khi bạn đã gọi nextval ('sequence'), bạn có thể sử dụng dòng hàm liên quan ('sequence'), trả về chuỗi hiện tại. – cms