當同一個查詢在不同的時間産生不同的行集時,就會出現所謂的幻像問題。例如,如果執行了兩次SELECT,但是第二次傳回了第一次沒有傳回的行,那麼該行就是一個“幻象”行。
假設在表child的id列上有一個索引,你想讀取并鎖定表中辨別符值大于100的所有行,并打算稍後更新所選行的某些列:
SELECT * FROM child WHERE id > 100 FOR UPDATE;
當同一個查詢在不同的時間産生不同的行集時,就會出現所謂的幻像問題。例如,如果執行了兩次SELECT,但是第二次傳回了第一次沒有傳回的行,那麼該行就是一個“幻象”行。
假設在表child的id列上有一個索引,你想讀取并鎖定表中辨別符值大于100的所有行,并打算稍後更新所選行的某些列:
SELECT * FROM child WHERE id > 100 FOR UPDATE;