Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
Доброго дня господа !

Запрос
drop sequence S1;
drop table T1;
create sequence S1
       start with 1
       increment by 1 
       nomaxvalue;
create table T1(ID int not null primary key);
--select S1.nextval from DUAL; 
insert into T1 values(S1.nextval);
commit;
select * from T1;


Результат
ID
2


Поясните почему 2 а не 1 ?
Откуда доп.итерация при первом insert-е ? (если делать select все в норме)
30 ноя 13, 13:03    [15217232]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
Asmodeus
Member

Откуда: Минск
Сообщений: 543
HOME_X,

В 10.2.0.4 все ОК:
+
drop sequence S1;
drop table T1;
create sequence S1
       start with 1
       increment by 1 
       nomaxvalue;
create table T1(ID int not null primary key);

--select S1.nextval from DUAL; 
insert into T1 values(S1.nextval);
commit;

select * from T1;

Sequence dropped.
Table dropped.
Sequence created.
Table created.
1 row created.
Commit complete.

        ID
----------
         1
1 row selected.


Если убрать комментарий - будет 2:
+
drop sequence S1;
drop table T1;
create sequence S1
       start with 1
       increment by 1 
       nomaxvalue;
create table T1(ID int not null primary key);

select S1.nextval from DUAL; 
insert into T1 values(S1.nextval);
commit;

select * from T1;

Sequence dropped.
Table dropped.
Sequence created.
Table created.

   NEXTVAL
----------
         1
1 row selected.
1 row created.
Commit complete.

        ID
----------
         2
1 row selected.
30 ноя 13, 13:28    [15217272]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
Asmodeus
Если убрать комментарий - будет 2:


Ну это пояснимо ... второй раз обратился
30 ноя 13, 13:32    [15217278]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
HOME_X,

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
Может проблема в настройках ?
30 ноя 13, 13:33    [15217280]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
Elic
Member

Откуда:
Сообщений: 29976
HOME_X,

Айдишникам, это по барабану. Не парся.
А вообще это отложенное создание сегментов в 11g и рестарт команды. Иногда полезно и почитывать форум, а не клепать не глядя нетленку.
30 ноя 13, 13:36    [15217285]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
HOME_X,

select * from v$version;
drop sequence S1;
drop table T1;
create sequence S1
       start with 1
       increment by 1 
       nomaxvalue;
create table T1(ID int not null primary key);
select S1.nextval from DUAL;
insert into T1 values(S1.nextval);
insert into T1 values(S1.nextval);
commit;
select * from T1;


При первом select
NEXTVAL
1


При первом insert - сразу 3
ID
3
4


досмотрите господа у кого аналогичная версия
Заранее благодарен !
30 ноя 13, 13:39    [15217289]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
Elic
HOME_X,


А вообще это отложенное создание сегментов в 11g и рестарт команды


Понял - спасибо !
30 ноя 13, 13:40    [15217292]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
HOME_X,

Тогда так
select S1.nextval from DUAL;
insert into T1 values(S1.currval);
insert into T1 values(S1.nextval);
commit;
select * from T1;
30 ноя 13, 13:42    [15217296]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
Elic
Member

Откуда:
Сообщений: 29976
HOME_X
HOME_X,

Тогда так
select S1.nextval from DUAL;
insert into T1 values(S1.currval);
insert into T1 values(S1.nextval);
commit;
select * from T1;
Нет. Создание таблицы и сразу же вставка невставлямого, если это так критично.
А критичность ещё надо доказать!
30 ноя 13, 13:49    [15217311]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
Elic
ещё надо доказать!

Абсолютно не критично, вполне подходит
но пример приведите "..вставка невставлямого.."
30 ноя 13, 14:08    [15217342]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
Elic
Member

Откуда:
Сообщений: 29976
HOME_X
Elic
ещё надо доказать!

Абсолютно не критично, вполне подходит
но пример приведите "..вставка невставлямого.."

HOME_X
Elic
ещё надо доказать!

Абсолютно не критично, вполне подходит
но пример приведите "..вставка невставлямого.."
insert into t (not_null_id) values (null)
30 ноя 13, 15:30    [15217503]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
HOME_X
Member

Откуда:
Сообщений: 2537
Elic,

Спасибо за уделенное время !
30 ноя 13, 16:24    [15217570]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкремент - доп.итерация ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
HOME_X,

а отложенное создание сегментов (имхо) лучше таки отключить
30 ноя 13, 18:39    [15217925]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить