|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
У меня есть таблица с номерами, из которой мне нужно взять один произвольный свободный номер. Делаю это я так: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Запрос обновляет какую-то произвольную строку, задавая в ней STATUS=1. Какой вернется ID — не имеет значения, но может быть любым. Но на деле он получается не любым, а последовательным. По ID в таблице задан первичный ключ, поэтому обычно эта произвольная строка имеет ID=10001, при повторных вызовах 10002, 10003 и так далее. Но если вручную убрать выставленные статусы (задать STATUS=0 для всех обновленных строк), то при повторении запроса эти строки не используются и обновляются (и возвращаются ID) строки 10004, 10005 и т.д. Если бы ID каждый раз были рандомные, либо если бы после обнуления статусов они начали использоваться повторно с 10001, то это было бы логично. Но почему нумерация продолжается, как если бы в таблице был какой-то указатель на строку? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 12:08 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Alibek B. Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 12:15 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Alibek B. У меня есть таблица с номерами, из которой мне нужно взять один произвольный свободный номер. Делаю это я так: Код: plsql 1. 2. 3. 4. 5. 6. 7.
если бы после обнуления статусов они начали использоваться повторно с 10001, то это было бы логично. как можно повторно, если Вы явно указываете STATUS = 0 (флажок повторно НЕ выбирать) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 12:18 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Alibek B., предположу row migration. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 12:40 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Elic Почитай план, чудак. Код: plaintext 1. 2. 3. 4.
Stax как можно повторно, если Вы явно указываете STATUS = 0 (флажок повторно НЕ выбирать) Еще я писал « задать STATUS=0 для всех обновленных строк ». проходил мимо... предположу row migration. По всей видимости да. А последовательность видимо потому, что записи в таблице тоже создавались последовательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 22:55 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Alibek B. Но если вручную убрать выставленные статусы (задать STATUS=0 для всех обновленных строк) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 23:23 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Хоть в той же, хоть в новой. После commit, разумеется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 00:28 |
|
Помогите понять логику rownum без явного order by
|
|||
---|---|---|---|
#18+
Alibek B. На что именно обратить внимание? Хочешь чего-то особенного? - Будь добр сперва это заказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 07:42 |
|
|
start [/forum/topic.php?fid=52&msg=39885463&tid=1881902]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 147ms |
0 / 0 |