D
DR.Quest
Gast
Hallo Java-Gemeinde!
Ich möchte einen INSERT in meine DB machen und dabei einen Fremd-Schlüssel
über ein SELECT setzen. Ich nutze dazu ein PreparedStatement.
In meiner ersten Tabelle (nennen wir Sie einfach mal Customer) befindet sich
eine ID als "ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY"
In meiner zweiten Tabelle (nennen wir Sie einfach mal Location) befindet sich
eine customer_id als "BIGINT UNSIGNED NOT NULL" und "FOREIGN KEY(customer_id) REFERENCES Customer(ID)"
Nun gut, ich möchte nun also mein PreparedStatement setzen und habe folgende
Dinge ausprobiert:
Das bewirkt einen org.h2.jdbc.JdbcSQLException: Datenumwandlungsfehler.
Und:
Funktioniert natürlich schon deshalb nicht, weil ich keinen String in nen int stecken kann.
Wie muss ich das also tun?
Ich möchte einen INSERT in meine DB machen und dabei einen Fremd-Schlüssel
über ein SELECT setzen. Ich nutze dazu ein PreparedStatement.
In meiner ersten Tabelle (nennen wir Sie einfach mal Customer) befindet sich
eine ID als "ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY"
In meiner zweiten Tabelle (nennen wir Sie einfach mal Location) befindet sich
eine customer_id als "BIGINT UNSIGNED NOT NULL" und "FOREIGN KEY(customer_id) REFERENCES Customer(ID)"
Nun gut, ich möchte nun also mein PreparedStatement setzen und habe folgende
Dinge ausprobiert:
Java:
statement.setString(1, "SELECT ID FROM Customer WHERE name = 'Smith'")
Das bewirkt einen org.h2.jdbc.JdbcSQLException: Datenumwandlungsfehler.
Und:
Java:
statement.setInt(1, "SELECT ID FROM Customer WHERE name = 'Smith'")
Funktioniert natürlich schon deshalb nicht, weil ich keinen String in nen int stecken kann.
Wie muss ich das also tun?