ďťż
 
DB2 Jboss Autoincrement ďťż
 
DB2 Jboss Autoincrement
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

DB2 Jboss Autoincrement



Grzes_P - 03-03-2007 00:02
DB2 Jboss Autoincrement
  Witam zrobiłem sobie beana CMP na jedną tebelę w bazie DB2. Całość
postawiłem na serwerze Jboss
Tabela ma trzy pola:

ID - Autoincrement Integer
NAZWA - VArchar(30)
ILOSC - Integer

i po dodaniu rekordu wywala błąd.

com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -798, SQLSTATE:
428C9, SQLERRMC: ID

błąd dotyczy polecenia INSERT w którym nie powinno być pola ID .





Artur - 03-03-2007 00:02

  Grzes_P:

jeśli w linii poleceń DB2 wpiszesz: db2 ? SQL0798N, dostaniesz
wyjaśnienie

SQL0798N Dla kolumny "<nazwa-kolumny>", która została
zdefiniowana jako GENERATED ALWAYS, nie można
określić wartości.

Czyli, jeśli definicja tabeli wygląda tak:

id integer generated always as identity,
nazwa varchar(30),
ilosc integer

to, przy wstawieniu musisz pominąć pole id.

Jeśli zmienisz atrybut ALWAYS na BY DEFAULT, wtedy będziesz mógł
wstawić jawnie wartość, a jeśli pominiesz wartość, wtedy baza
wygeneruje ją dla Ciebie.

alter table twoja_tabela alter column id
set generated by default;

Jeśli chcesz pobrać wygenerowaną przez bazę wartość, najlepiej zrobić
to przy wstawieniu, poprzez tzw. select z operacji modyfikacji danych.

select id from new table (
insert into twoja_tabela (nazwa, ilosc) values ('Nazwa', 999)
) as t;

PS.
Sprawdź definicję tabeli:
db2look -d twoja_baza -e -t twoja_tabela

-- Artur Wroński
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    db2 alter table alter column set default [SQLITE] kilka =?ISO-8859-2?Q?p=F3l_autoincrement_lub_sekw?==?ISO-8859-2?Q?encje?= =?ISO-8859-2?Q?Re:_DB2_-_niesp=F3jne_zapytanie_wg._asktom.oracle.com?= Oracle XE lub DB2 Express-C i wspolpraca z Visual C# 2005 Expess Edition IBM DB2 Express - czy podobnie jak Oracle Expreess ma wycieta Javew procedurach? Re: DB2 za darmo - =?ISO-8859-2?Q?troch=EA_wi=EAcej?= =?ISO-8859-2?Q?db2_obj=EAto=B6=E6_bazy?= [db2] Update sql posiłkowany danymi z innej tabeli =?iso-8859-2?q?Konfiguracja_domy=B6lna_DB2_Express-C?= [DB2/Websphere]: JDBC - result set closed
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com