Это довольно легко проверить самостоятельно, не так ли?
[db2inst1@somehost ~]$ db2 "create table test(f1 int not null generated always as identity, f2 varchar(20))"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "insert into test (f2) values ('foobar')"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "insert into test (f2) values ('foobar')"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "select * from test"
F1 F2
----------- --------------------
1 foobar
2 foobar
2 record(s) selected.
[db2inst1@somehost ~]$ db2 "alter table test alter column f1 drop identity"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "select * from test"
F1 F2
----------- --------------------
1 foobar
2 foobar
2 record(s) selected.
Так что нет, существующие значения прежних IDENTITY
не будут изменены.
Обратите внимание, однако, что если вы заново создаете идентичность на table2
так, как вы показываете, она сгенерирует хотя бы некоторые значения, которые перекрываются с существующими значениями, что приведет к дублированию «идентичностей» или вставке исключений.
[db2inst1@somehost ~]$ db2 "alter table test alter column f1 set generated always as identity
> (START WITH 1, INCREMENT BY 1, MINVALUE 1)"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "insert into test (f2) values ('foobar')"
DB20000I The SQL command completed successfully.
[db2inst1@somehost ~]$ db2 "select * from test"
F1 F2
----------- --------------------
1 foobar
2 foobar
1 foobar
3 record(s) selected.