我正在使用存储过程从 Available_Tickets 表中选择一个“随机”行,选择后如果用户喜欢该号码并购买票,该行将从表中删除。
我的程序如下所示:
CREATE OR REPLACE GET_RANDOM_TICKET (RESULT OUT INTEGER) IS
co,mn,mx integer;
BEGIN
SELECT COUNT(ID) , MIN(ID) ,MAX(ID) INTO CO,MN,MX FROM TICKETS;
SELECT TICKET_NUMBER INTO RESULT FROM (
SELECT TICKET_NUMBER
FROM TICKETS WHERE ID >= DBMS_RANDOM(MN,MX)
) WHERE ROWNUM = 1;
END GET_RANDOM_TICKET;
如果用户同意返回的数字,则删除选定的行。我可以在执行第一个 select 语句后删除具有 max(id) 的行的最坏情况吗?
编辑1----SELECT
尽管表中发生了变化,这两个语句会看到相同的数据吗?为什么?