db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Satheesh Bandaram <sathe...@Sourcery.Org>
Subject Re: identity column causes grief when populating table - suggestions?
Date Tue, 22 Feb 2005 19:43:16 GMT
You are trying to insert into a column that is declared as identity.
Database automatically generates a unique number for identity columns,
so just leave out ID column in your INSERT statement, like:

    insert into sample (DESCRIPTION, QUANTITY) values ('blah', 1.1);

That should fix it...


Trevor Squires wrote:

> Hi,
> I've been googling all morning and can't find info to solve this
> problem (using derby of course), I hope someone here can help...
> As I write my application I have a script which blats and recreates my
> database and then populates the tables with test data.
> However, many of my tables have identity columns and it's causing the
> following error when I insert the data:
>  11:06:26  [INSERT - 0 row(s), 0.016 secs]  [Error Code: 30000, SQL
> State: 42Z23]  Attempt to modify an identity column 'ID'.
> Here's my table:
> create table sample (
>     id int not null generated always as identity,
>     description varchar(128) not null,
>     quantity double not null,
>         constraint product_pk primary key (id)
> );
> Here's my insert statement
> insert into sample (ID, DESCRIPTION, QUANTITY) values (1, 'blah', 1.1);
> I've tried to create the table without "generated always as identity"
> and then altering the table after the insert(s).
> Unfortunately I can't get the syntax right and I can't figure out if
> there's a way to turn off identity generation temporarily.
> Does anyone have any suggestions like pointer to the right way to do
> this or a relatively painless workaround?
> Thanks for listening,
> Trevor

View raw message