2016-04-07 2 views

Antwort

0

JDBC generiert keine IDs automatisch. Es ist normalerweise die Datenbank, die es tut, aber selbst die Datenbank würde keine für generieren, ohne Trigger zu verwenden.

Zum Abrufen der Datenbank-generierten Schlüssel können Sie con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); verwenden, obwohl das wahrscheinlich nicht mit vom Trigger generierten Werten funktioniert.

+1

erklärt Sie können [tun dies] (http://stackoverflow.com/a/32114047/266304), um die Schlüssel, auch wenn sie von einem Trigger generiert werden. Allerdings würden Sie das für einen String-Schlüssel tun ... –

+0

Für Oracle können Sie 'Statement.RETURN_GENERATED_KEYS' verwenden Sie müssen nur darauf vorbereitet sein, damit umzugehen, dass es nicht die generierte ID zurückgibt, sondern die' ROWID', Das kann dann verwendet werden, um nach der Zeile zu fragen, um die tatsächlich erzeugte ID zu erhalten. –

0

einer Sequenz in Oracle definieren und in yur Insert-Anweisung unter Werte Klausel mit Ihrer ID füllen sequence.nextval EG- Einsatz in ruff (id, name) Werte (your_sequence.nextval, 'name')

0

Sie können die Sequenz in der Oracle-Datenbank definieren und auch die benutzerdefinierten Generierungsmethoden für Sequenzen angeben. Und wenn Sie die Werte in die Tabelle einfügen, anstatt die Werte vom Benutzer bereitzustellen, können Sie die zuvor generierte Sequenz verwenden, um den Primärschlüssel einzufügen.

Verwandte Themen