Tôi đang cố gắng chèn 40 hàng bằng INSERT ALL INTO và tôi không chắc chắn về cách chèn khóa thay thế. Dưới đây là những gì tôi cóINSERT ALL INTO và Sequence.nextval cho khóa thay thế
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
END
Bây giờ nếu tôi thêm một giá trị INTO khác thì tôi sẽ bị vi phạm ràng buộc duy nhất.
BEGIN
INSERT ALL
INTO question(question_id)
VALUES (question_seq.nextval)
INTO question(question_id)
VALUES (question_seq.nextval)
END
Làm cách nào để cập nhật giá trị chuỗi tiếp theo cho mỗi INTO VALUES để tôi có thể tránh vi phạm ràng buộc duy nhất? Tôi giả định rằng nextval sẽ tự động cập nhật chính nó.
CẬP NHẬT: Tôi không biết nếu điều này là cách tốt nhất để xử lý này nhưng đây là giải pháp tôi đến với:
đầu tiên tôi tạo ra một hàm trả về một giá trị sau đó tôi gọi là hàm trong lĩnh vực id của mệnh đề VALUES
create or replace
FUNCTION GET_QUESTION_ID RETURN NUMBER AS
num NUMBER;
BEGIN
SELECT UHCL_QUESTIONS_SEQ.nextval
INTO num
FROM dual;
return num;
END GET_QUESTION_ID;
INSERT ALL
INTO question(question_id)
VALUES (GET_QUESTION_ID())
INTO question(question_id)
VALUES (GET_QUESTION_ID())
Bạn không cần mệnh đề 'from' với' chèn tất cả'? – Raihan
@Raihan không phải để chèn tất cả. – Robert
@Raihan xin lỗi về điều đó ... bạn nói đúng, tôi chỉ không dán lựa chọn vào, nhưng tôi có một. – Robert