× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Jon,

When GENERATED ALWAYS AS IDENTITY is in place, you can still override the
ALWAYS behavior on the INSERT.

On the INSERT, specify OVERRIDING SYSTEM VALUE -

INSERT into MY_TABLE ( COL_1, COL_2 ) OVERRIDING SYSTEM VALUE
SELECT COL_A, COL_B from SOME_OTHER_TABLE

However, IIRC, after you do that, you'll need to follow it with:

ALTER TABLE ALTER COLUMN MY_ID_COLUMN RESTART WITH xxxxx

...where xxxxx represents the last ID consumed plus one, in order to reset
the next ID value doled out to take the INSERTed rows into account.

xxxxx can't be a variable, so the RESTART SQL is best handled using dynamic
SQL.

Mike


date: Thu, 9 Feb 2017 15:20:51 -0500
from: Jon Paris <jon.paris@xxxxxxxxxxxxxx>
subject: Help needed with GENERATED ALWAYS AS IDENTITY

I have a set of SQL statements originally for MySQL (I think) which I am
attempting to convert to DB2.

These include things like this:

jobNumber INT NOT NULL AUTO_INCREMENT,

I believe that AUTO_INCREMENT needs to be replaced by GENERATED ALWAYS AS
IDENTITY but I also have existing data that has to be loaded into the table
and when I use this qualifier it refuses to allow data input for the
column. I tried removing the qualifier, inserting the data and then doing
an ALTER TABLE but it is not happy with that either.

So - question is - how do you do this in DB2 - it seems to work in Oracle,
SQL Server, MySQL, etc. so I'm guessing it can be done but I'm stumped.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.