Widziałem rozwiązania do aktualizacji sekwencji, gdy nie są one zsynchronizowane z kluczem podstawowym, który generuje, ale nie rozumiem, jak ten problem występuje w pierwszej kolejności.Dlaczego sekwencje id SQL idą niezsynchronizowane (w szczególności przy użyciu PostgreSQL)?
Czy ktoś ma wgląd w to, w jaki sposób pole klucza podstawowego, z jego domyślnym określeniem jako nextval sekwencji, którego klucze podstawowe nie są jawnie ustawione nigdzie, może zsynchronizować się z sekwencją? Używam PostgreSQL i widzimy, że zdarza się to od czasu do czasu. Powoduje to ostatecznie duplikat ograniczenia klucza, gdy sekwencja tworzy identyfikator dla istniejącego wiersza.
Po pewnych badaniach, w moim przypadku było to mapowanie Hibernacji, które generowało własne identyfikatory i ignorowało sekwencję. Nie jestem pewien, czy powinienem usunąć pytanie w tej sprawie - wygląda na to, że inni napotykają ten sam problem. – Jake
Możesz po prostu odpowiedzieć na własne pytanie. Naprawdę nie ma mowy, aby sekwencje się "zsynchronizowały", chyba że (lub niektóre oprogramowanie pośrednie) nie używają sekwencji do generowania kluczy podstawowych dla niektórych lub wszystkich wierszy. – nos