Có thể UPDATE
một hàng và sau đó SELECT
dữ liệu cập nhật từ cùng một hàng trong cùng một giao dịch mà không sợ bị bế tắc?CẬP NHẬT và CHỌN một hàng trong cùng một giao dịch
6
A
Trả lời
6
Sử dụng mệnh đề OUTPUT
để thực hiện việc này.
Update table_name
set col1='some_value'
output inserted.*
1
Vâng, nếu bạn chạy trong cùng một giao dịch cả hai câu lệnh họ không nên bế tắc giữa chúng
Nếu bạn sợ deadlocking với các giao dịch khác, bạn nên hạn chế tối đa các khóa do giao dịch của bạn, sử dụng một mệnh đề WHERE
được lập chỉ mục trong UPDATE
và tránh mức cách ly SERIALIZABLE
nếu có thể. (ReadCommitted làm thủ thuật cho bạn?)
1
Vâng, điều đó sẽ ổn thôi. Một bế tắc xảy ra khi hai phiên SQL riêng biệt cố truy cập cùng một bản ghi cùng một lúc. Bởi vì Update và Select đang xảy ra trong cùng một Transaction, nó sẽ buộc chúng xảy ra tuần tự. Tuy nhiên, nếu nhiều nguồn đang chạy Giao dịch của bạn, điều đó có thể gây ra bế tắc.
0
để chọn giá trị chèn sử dụng truy vấn sau
UPDATE SET maths = 20,biology = 21 OUTPUT INSERTED.maths, INSERTED.biology WHERE student_id = 12
để chọn trước đó sử dụng giá trị
UPDATE SET maths = 20 OUTPUT DELETED.maths WHERE student_id = 12
Các vấn đề liên quan
- 1. Cách Cập Nhật và CHỌN cùng một lúc
- 2. SQL Chọn Rows từ một bảng và cập nhật các hàng cùng
- 3. Cách chọn và cập nhật trong một truy vấn?
- 4. Chọn và cập nhật trong một thủ tục đã lưu
- 5. cập nhật SQL nhiều hàng với cùng một giá trị
- 6. Có cách nào để MySQL cập nhật và chọn các hàng được cập nhật trong một câu lệnh t không?
- 7. StaleObjectStateException: Hàng đã được cập nhật hoặc xóa bởi một giao dịch khác?
- 8. Nhiều Giao dịch PayPal cùng một lúc
- 9. $ push và $ set trong cùng một cập nhật MongoDB
- 10. Tôi có thể chọn và cập nhật cùng một lúc không?
- 11. Làm thế nào để cập nhật và CHỌN cùng một lúc trong MySQL
- 12. Cập nhật và chọn trong một truy vấn
- 13. Hiệu năng kém để CHỌN và CẬP NHẬT một triệu hàng trong Oracle qua JDBC
- 14. Giao dịch trong một Giao dịch trong C#
- 15. Cập nhật nhiều bản ghi trong một giao dịch ActiveRecord trong Rails
- 16. Tạo và cập nhật nhiều mô hình theo một giao dịch
- 17. MySql CẬP NHẬT với SUM trong cùng một bảng
- 18. Chọn cùng một hàng nhiều lần
- 19. Cập nhật mỗi hàng với một giá trị từ cột khác từ cùng một bảng
- 20. ListView Đang cập nhật một hàng
- 21. Hibernate và JDBC trong một giao dịch
- 22. Chọn hàng trên cùng và dưới cùng
- 23. mysql khóa hàng trong một truy vấn chọn để cập nhật
- 24. CHỌN và CẬP NHẬT nhiều bản ghi trong định hướng/định hướng và giao dịch trong đường nước
- 25. Giao dịch có thể thực hiện được so với CHỌN ĐỂ CẬP NHẬT
- 26. Cách thực hiện chèn và cập nhật bên ngoài giao dịch trong T-SQL
- 27. Hibernate PostInsertEventListeners -Sử dụng cùng một giao dịch như chèn?
- 28. Cập nhật một hàng trong bảng, sử dụng liquibase
- 29. mysql lồng SELECT trong CẬP NHẬT của cùng một bảng
- 30. Giao dịch chỉ cập nhật một bảng đơn luôn bị cô lập?
Thats tốt hơn nhiều :) – Juan