157. View the Exhibit and examine the structure of the ORDERS and CUSTOMERS tables.
Evaluate the following SQL command:
SQL> SELECT o.order_id, c.cust_name, o.order_total, c.credit_limit
FROM orders o JOIN customers c
USING (customer_id)
WHERE o.order_total > c.credit_limit
FOR UPDATE
ORDER BY o.order_id;
Which two statements are true regarding the outcome of the above query? (Choose two.)
A. It locks all the rows that satisfy the condition in the statement.
B. It locks only the columns that satisfy the condition in both the tables.
C. The locks are released only when a COMMIT or ROLLBACK is issued.
D. The locks are released after a DML statement is executed on the locked rows.
Answer: AC答案解析:
For update of 实际列名(可以加of,也可以省略of,如果加上of就是锁定指定的表,而列并不重要,只要是该表中的实际列名,不可以使用列别名,如果不加of,则锁定满足条件的所有行)
A,锁定语句中满足条件的所有行,正确
B,只锁定两个表中满足条件的列。错误,是满足条件的所有行,不是列。
C,只有执行COMMIT或ROLLBACK后,锁才会释放,正确。
D,锁定的行上执行DML语句后,锁被释放,错误。如C。