# com.mysql.jdbc.NotUpdatable: Result Set not updatable



## headgrowe (30. Jul 2009)

hey,
hab probs mit "updateString" und wie man im anhang sieht, hab ich doch einen primary key?!

was soll ich machen...hab schon alles probiert....
und wenn ich schon hier bin, welcher befehl, hägt neue daten an...


```
Class.forName("com.mysql.jdbc.Driver").newInstance();
	con = DriverManager.getConnection("jdbc:mysql://localhost/java","root", "");

	Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,
							ResultSet.CONCUR_UPDATABLE);
	ResultSet srs = stmt.executeQuery("SELECT name FROM test WHERE ID = 2");
	srs.next();
	System.out.println("name: "+ srs.getString(1));
	srs.updateString("name", "alex");
	srs.updateRow();
	srs.close();
	stmt.close();
```
console: mit fehler

```
name: jac
com.mysql.jdbc.NotUpdatable: Result Set not updatable (references no primary keys).This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, can not use functions and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.
```

msql test >

```
explain SELECT ID, name FROM test WHERE ID=2 FOR UPDATE
```
result:

```
id -- select_type --table --type -- possible_keys -- key ----- key_len -- ref -- rows -- Extra
1 -- SIMPLE ------ test -- const -- PRIMARY ------ PRIMARY ----- 4 ----- const -- 1 --
```


struktur der mySQL tabelle im anhang


----------



## sparrow (30. Jul 2009)

headgrowe hat gesagt.:


> [...] Result Set not updatable (references no primary keys). [...] the query must [...] select all primary keys from that table.[/HTML]



Ich finde das ist eine ziemlich aussagekräftige Fehlermeldung.


```
ResultSet srs = stmt.executeQuery("SELECT id, name FROM test WHERE ID = 2");
```


----------



## headgrowe (30. Jul 2009)

danke für deine antwort,
ja, jt wenn ichs weiß, kommt mir das auch logisch for...als blutiger anfänger sieht man halt noch nichts in den fehlermeldungen...
danke


----------

