Cái này theo như mình test mấy demo trên kia thì có vẻ như MySql nó tùy từng trường hợp mà kill transaction nào.
Đa số là kill transaction sau, tuy nhiên, có 1 case nó kill transaction trước đó là :
Insert & update đồng thời (bảng chưa có data) Insert sau và Update trước. nhưng kết quả là transaction insert đc thực hiện
đây là function core của Trait DetectsDeadlocks.
Chỗ này chỉ là mình giải thích cách thức hoạt động reTry Transaction của Laravel thôi.
Nó sẽ check xem exception phải là DeadLock thì mới reTry, còn nếu kp thì bắn ra exeption đó luôn.
Sử dụng Transaction trong MySQL
Theo mặc định thuộc tính autocommit sẽ đc enabled, Transaction sẽ được tự động hoàn thành mà không cần phải sử dụng COMMIT hoặc ROLLBACK. Vì vậy chúng ta cần disabled nó: SET autocommit = 0 trước khi bắt đầu một transaction. ví dụ:
SET autocommit = 0;
START TRANSACTION;
BEGIN;
INSERT INTO `users` (`name`, `email`) VALUES ('lxquan', 'lxquanit@gmail.com')
UPDATE `users` SET name='quanluu' WHERE email = 'lxquanit@gmail.com';
COMMIT;
ROLLBACK;
phần này bạn nói sai rồi nhé, autocommit được enabled có nghĩa là mỗi câu lệnh mặc định trong 1 transaction.
Còn nếu dùng START TRANSACTION; thì trước khi bạn rollback hay commit, autocommit bị disable.
THẢO LUẬN
viết vội nên không check kịp ông ei :v
đầu tiên mình xin lỗi vì thiếu sót trong bài không có đường dẫn rõ ràng.
Đây là file
httpd.conf, tùy vào OS mà bạn sử dụng (windows, mac, linux) mà đường dẫn của nó sẽ khác nhau nhé!Cái này theo như mình test mấy
demotrên kia thì có vẻ như MySql nó tùy từng trường hợp mà kill transaction nào. Đa số là kill transaction sau, tuy nhiên, có 1 case nó kill transaction trước đó là : Insert & update đồng thời (bảng chưa có data) Insert sau và Update trước. nhưng kết quả là transaction insert đc thực hiệnspam
spam
spam
đây là function core của
Trait DetectsDeadlocks. Chỗ này chỉ là mình giải thích cách thức hoạt động reTry Transaction của Laravel thôi. Nó sẽ check xem exception phải làDeadLockthì mới reTry, còn nếu kp thì bắn ra exeption đó luôn.sai chính tả hơi nhiều nghe
ồ, đúng rồi. cám ơn bạn nhé, mình sẽ sửa lại cho đúng ạ

bạn đang hỏi về ejectWithValue hử
phần này bạn nói sai rồi nhé, autocommit được enabled có nghĩa là mỗi câu lệnh mặc định trong 1 transaction. Còn nếu dùng START TRANSACTION; thì trước khi bạn rollback hay commit, autocommit bị disable.
https://dev.mysql.com/doc/refman/8.0/en/commit.html
đôi khi tiêu đề phải gây tính tò mò ms thú vị idol ạ
Hay quá bạn ei
@Wolo chuẩn luôn bác, 2 cái đầu, 4 con mắt thì sẽ hơn 1 cái đầu 2 con mắt bác nhỉ
Mình nhớ trạng thái reject thì lỗi trả về trong action.error chứ
Đặt tiêu đề đầy tính thách thức. (y)
Bạn git clone repo mình về https://github.com/buiquangmanhhp1999/Auto-Scores-National-Multiple-Choice-Test Sau đó chạy file process_img.py là ok
Chạy như nào ạ, em đang làm bài tập lớn môn xử lý ảnh, mà em không biết python, a chỉ rõ hơn được không ạ
Khi xảy ra DeadLock thì MySql sẽ kill transaction nào ạ? transaction sau (mặc dù chạy đồng thời những cũng có sự sai lệch trc sau chứ nhỉ) ạ.???
mình chưa hiểu chỗ này
$this->causedByDeadlock($e)