Szukam sposobu na generowanie unikalnych kluczy, który będzie działał w większości baz danych (PostgreSQL, MS SQL Server, Firebird, Oracle, MySQL). Jest w ogóle uniwersalny sposób? Czy muszę sam umieszczać te klucze, jeśli chcę, żeby działało w większości baz?
A dlaczego chcesz wywarzać otwarte drzwi?
Jeśli jest jakiś uniwersalny sposób to bym prosił o jego podanie :)
Primary/Unique Key + auto_increment ?
Ale czy to działa w każdej z podanych przeze mnie bazie?
Jeśli baza nie ma auto_increment (dostępnego na przykład w MySQL), to wartości wstawia się z sekwencji (typowe rozwiązanie w Oracle).
Idea mechanizmu zawsze jest taka sama (zmienna automatycznie zwiększana po pobraniu wartości), ale różne bazy implementują to różnie. Z resztą jaki jest sens szukania rozwiązania tego problemu, by działał na każdej bazie tak samo, skoro - z powodu o wiele większych różnic w innych mechanizmach baz danych (ot, choćby zarządzania datami czy typów zmiennych) - i tak istnieje potrzeba oddzielenia implementacji logiki biznesowej od dostępu do danych.
Było by łatwiej, jasne; ale nie jest.
Nie wiem jak jest w Oracle, ale reszte przegryzłem i tak.
Smutne, ale jakoś to zniosę. Piszę w Javie używając JDBC i przyzwyczaiłem się do multiplatformowości ;) Jednak skoro muszę się zdecydować na jedną bazę, to chyba wybiorę Firebirda.