× 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.



OK - thanks Mike - in this case I don't need it. Which is a good job as it would have been a pain to change all of the generated SQL statements that would have needed it.

Useful additional information though as I often find myself wanting to convert databases originating on MySQL to DB2 and this is a commonly used feature.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Feb 9, 2017, at 6:14 PM, Mike Jones <mike.jones.sysdev@xxxxxxxxx> wrote:

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

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.