2009-05-17 22 views
6

Tôi đang cố gắng chèn một hàng vào một bảng, sử dụng một giá trị bắt nguồn từ một bảng khác. Dưới đây là các câu lệnh SQL mà tôi đang cố gắng sử dụng:Chèn một hàng vào DB2 từ một lựa chọn phụ - lỗi NULL

INSERT INTO NextKeyValue(KeyName, KeyValue) SELECT 'DisplayWorkItemId' AS KeyName, (MAX(work_item_display_id) + 1) AS KeyValue FROM work_item; 

Vì vậy, tôi đang cố gắng để tạo ra một hàng trong NextKeyValue có 'KeyName' của 'DisplayWorkItemId' và 'KeyValue' của một trong hơn giá trị tối đa trong work_item.work_item_display_id.

Câu lệnh SELECT trong truy vấn trên trả về kết quả mong đợi, khi tôi chạy nó một mình.

Toàn bộ truy vấn SQL được đem lại cho tôi những lỗi sau, mặc dù:

Error: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=75, COLNO=2, DRIVER=3.50.152 SQLState: 23502 ErrorCode: -407

Điều đó có nghĩa, và những gì là sai với truy vấn của tôi?

+0

+1 Tôi đề nghị bạn thay đổi tiêu đề của câu hỏi thành "Chèn hàng từ lựa chọn phụ - lỗi NULL" và thêm thẻ "SQL", vì vấn đề này là chung chung chứ không phải DB2 cụ thể. –

+0

ý tưởng hay. Tôi vừa làm nó. – pkaeding

Trả lời

15

Giải thích rõ ràng nhất là bạn có thêm cột trong bảng NextKeyValue không thể chấp nhận giá trị NULL và câu lệnh INSERT này "đang cố gắng" để đặt NULL vào chúng.

Đó có phải là trường hợp của bất kỳ cơ hội nào không?

+0

Yup, đúng vậy. Có một loạt các cột khác trong bảng đó không phải là vô giá trị mà tôi đã quên mất. Cảm ơn! – pkaeding

Các vấn đề liên quan