Sử dụng Trình kết nối/J, tôi muốn chèn hàng loạt vào bảng chính, sau đó chèn hàng loạt vào bảng chi tiết (PreparedStatement.executeBatch()
cho cả hai). Tôi không tìm thấy nhiều thông tin trực tuyến, vì vậy tôi đang tìm kiếm bất kỳ phản hồi nào từ những người có kinh nghiệm về vấn đề này.Sử dụng getGeneratedKeys với chèn hàng loạt trong MySQL với Connector/J
Tôi có thể sử dụng
Statement.getGeneratedKeys()
để có được các ID của các hàng mới được chèn trong bảng tổng thể để tôi có thể sử dụng chúng như phím nước ngoài trong chèn chi tiết?Điều gì xảy ra nếu không phải mọi truy vấn đều dẫn đến kết quả là một lần chèn (ví dụ: có truy vấn
insert ignore
hoặcinsert ... on duplicate key update
)? Tôi có nhận được hàng trongStatement.getGeneratedKeys()
cho mọi tuyên bố hoặc chỉ cho những câu mới?Điều gì sẽ
Statement.getGeneratedKeys()
trở có lỗi với một trong những hồ sơ tổng thể chèn, vàcontinueBatchOnError
được thiết lập đểtrue
trong chuỗi kết nối?Có sự khác biệt nào về hành vi liên quan giữa Trình kết nối/phiên bản J 5.0.x so với 5.5.x không? Còn MySQL 5.0 và 5.1 thì sao?
Bất kỳ vấn đề hoặc gotchas nào khác mà tôi cần phải biết?
Có cách nào tốt hơn để thực hiện việc này không?
Lưu ý có một số ràng buộc trên bảng - http://stackoverflow.com/q/7333524/1339987 – djechlin