[FB] Hmmm, alter generatora??

0

Kwestia jest taka.
Mam dwie identyczne bazy. Z tym, że jedna ma dane, a druga nie(jest zupełnie czysta).
Dokonuję importu - importuję WSZYSTKIE dane, wraz z polami ID, aby się nic nie rozjechało.

No i teraz powstaje taki efekt, że jakikolwiek insert po imporcie skutkuje błędem - Violation on Primary Key. Chodzi o to, że numer ID, który on chce wstawić już istnieje.
Co muszę zrobić, żeby w danej tabeli zaczął wstawiać IDki zaczynając od ostatniego?

0
Misiekd napisał(a)

http://www.fingerbird.de/gene[...]dy.htm#How_to_set_a_Generator

A istnieje jakaś możliwość na sprawdzenie, jaki generator należy do danej tabeli?
Czy powiedzmy, że jeśli mam tabelę: "TAB" to mam założyć, że generator to będzie: "GEN_TAB_ID"?

Znalazłem tylko, jak zdobyć listę generatorów.

0
  1. jak chcesz zmienić wartość generatora ustalając ją na wartość zwróconą przez select to trzeba tak
SELECT gen_id(nazwa_generatora, (select max(pole_id) from tabela) - gen_id(nazwa_generatora, 0)) FROM rdb$database;
  1. generatory nie są powiązane z tabelami. Nie można tego stwierdzić na podstawie nazwy ponieważ można sobne nazwać generator jak się chce. Oczywiście przy generatorach tworzonych automatycznie (np. przez IBExperta) ich nazwa jest taka gen_nazwa_pola_dla_ktorego_jest_tworzony. Jedynie można stwierdzić która tabela ort! z danegho generatora analizując procedury składowe i wyzwalacze w bazie oraz SQL w aplikacji

  2. IBExpert przy eksporcie danych (a tu w szczególności generatorów) eksportuje też ich wartości - Extract Metadata -> zakładka Opcje -> Ustaw generatory

0

Nie ma szans dopasowac generatora do tabelki - nazwa gen moze czasem mylic. Generator raczej jest powiazany z wyzwalczem w tabelce, dlatego proponuje zerknac w tabeli w wyzwalacz i spisac z niego nazwe gen.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0