我有一个应该有效的更新查询但由于某种原因它无法正常工作
String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI SET YEAR='year1', MONTH='month1', DAY='day1', MJD='mjd1', WHERE (EOPID=1)";
它给我以下错误
Incorrect integer value 'year1' for column YEAR at row1
我的表包含以下列及其类型
| EOPID | int(11) | NO | PRI | NULL | auto_increment |
| YEAR | int(11) | YES | | NULL | |
| MONTH | int(11) | YES | | NULL | |
| DAY | int(11) | YES | | NULL | |
| MJD | int(11) | YES | | NULL | |
我以下列方式从jTable中检索要在我的sql update查询中使用的值
Object year=model.getValueAt(row, column);
years=year.toString();
year1=Integer.parseInt(years);
所以我相信我使用的是正确的类型,但我无法弄清楚为什么它不会更新。这是一个mysql版本吗?
答案 0 :(得分:1)
您的查询应该是。
String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI
SET
YEAR="+year1+",
MONTH="+month1+",
DAY="+day1+",
MJD="+mjd1+"
WHERE
EOPID=1";
year1
,month1
,day1
,mjd1
应该是包含适当值的变量(尽管在WHERE
子句之前还有一个额外的comm)。
答案 1 :(得分:0)
系统抱怨你给它一个STRING(“year1”),而不是它所期望的整数值(例如2012)。
你应该写得更像:
String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI SET YEAR=" +
year1.toString() + ", month..."