我不明白爲什麼下面的更新工作正常,在控制檯中,但在我的Java代碼MySQL的 - 在字段列表未知列
MariaDB [testdb]> DESCRIBE datasift_geo;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| datasift_id | bigint(20) unsigned | NO | PRI | NULL | |
| latitude | decimal(17,14) | YES | | NULL | |
| longitude | decimal(17,14) | YES | | NULL | |
| location | varchar(100) | YES | | NULL | |
| coord | point | YES | | NULL | |
+-------------+---------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
MariaDB [testdb]> SELECT * FROM datasift_geo;
+-------------+-------------------+-------------------+------------+-------+
| datasift_id | latitude | longitude | location | coord |
+-------------+-------------------+-------------------+------------+-------+
| 1601 | 51.45713800000000 | -2.60802800000000 | Bristol UK | NULL |
+-------------+-------------------+-------------------+------------+-------+
MariaDB [testdb]> UPDATE datasift_geo SET coord = GeomFromText('POINT(51.45713800000000 -2.60802800000000)');
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
失敗============ ====
@Test
public void testGeoCoord() throws SQLException {
int id = 1601;
float latitude = 51.45713806152344f;
float longitude = -2.608027935028076f;
String sql = "UPDATE `datasift_geo` SET `datasift_geo`.`coord` = GeomFromText('POINT(" + latitude + " " + longitude + ")') WHERE datasift_id = " + id;
// get database connection, create a PreparedStatement, execute the UPDATE
}
======
執行UPDATE
java.sql中的結果.SQLSyntaxErrorException:未知列「datasift_geo.coord」 在「字段列表」
爲什麼不只是'coord'(就像你在控制檯檢查中那樣)? – 2014-09-29 12:53:02
這是一個很好的問題。我已經嘗試了任何數量的置換,認爲反引號可能是問題,但都有相同的結果 - 未知列。 – 2014-09-29 13:01:12
我知道你已經檢查了很多選項,但我們的開發人員總是犯下愚蠢的錯誤。我希望你連接到正確的主機和數據庫。它可能存在表格而不是列。 – 2014-09-29 13:29:53