Последовательности в условиях запроса

Павлюченко
Дата: 26.11.2009 13:15:19
Можно ли использовать последовательности в условиях запроса.
Типа:
"SELECT * FROM TABLE1 WHERE (TABLE1.FKID  = TABLE2_seq.currval)";
sequence
Дата: 26.11.2009 13:19:46
Павлюченко,

разрешаю!
Добрый Э - Эх
Дата: 26.11.2009 13:20:16
А кто мешает попробовать?
Но в целом, вызвать currval в запросе, без вызова nextval в этом же запросе, сервер не позволит.
Так что именно в таком виде, как ты написал, твой запрос работать не будет...
__vvp_
Дата: 26.11.2009 13:20:23
Павлюченко
Можно ли использовать последовательности в условиях запроса.
Типа:
"SELECT * FROM TABLE1 WHERE (TABLE1.FKID  = TABLE2_seq.currval)";


А смысл? :)

Что ты хочешь получть вообще?
sequence
Дата: 26.11.2009 13:20:39
а оно нужно?
Павлюченко
Дата: 26.11.2009 13:25:39
Добрый Э - Эх
А кто мешает попробовать?
Но в целом, вызвать currval в запросе, без вызова nextval в этом же запросе, сервер не позволит.
Так что именно в таком виде, как ты написал, твой запрос работать не будет...

Позволяет в другом запросе.

Суть в том, что мне надо выбрать последнее значение родительской таблицы.
Может не через последовательности это сделать, а что-то типа подзапроса
Select MAX(ID) FROM TABLE2 ?
Добрый Э - Эх
Дата: 26.11.2009 13:27:00
Павлюченко
Суть в том, что мне надо выбрать последнее значение родительской таблицы.
Может не через последовательности это сделать, а что-то типа подзапроса
Select MAX(ID) FROM TABLE2 ?


Именно через подзапрос это делать и нужно...
__vvp_
Дата: 26.11.2009 13:27:12
Павлюченко,

Поищите RETURNING
Добрый Э - Эх
Дата: 26.11.2009 13:28:14
Хотя, опять вопрос. А зачем тебе последнее значение из родительской? Уж не инсерт ли в дочернюю после этого предполагается? А то может тебе просто нужен многотабличный INSERT?
orawish
Дата: 26.11.2009 13:28:55