[英]insert row having auto increment column
我的表具有ID列,该列是主键并自动递增,我正在尝试使用Java(jdbc)这样插入一行
Class.forName("com.mysql.jdbc.Driver");
Connection con1=DriverManager.getConnection("jdbc:mysql://localhost:3309/ikpems","root","system");
Statement st1=con1.createStatement();
st1.execute("insert into energymetersdata values('20_lab5a_daicel_20_kwh','06-02-2017 12:02:13','8422587','1','42772501540.0694')");
但是我遇到了错误:
java.sql.SQLException: Column count doesn't match value count at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
谁能帮我把这个插入..
使用insert
,应始终明确列出所有列(除非您真的知道自己在做什么):
insert into energymetersdata(col1, col2, col3, col4, col5)
values('20_lab5a_daicel_20_kwh', '06-02-2017 12:02:13', '8422587', '1', '42772501540.0694')");
您还应该将日期时间设置为ISO标准格式,并且无需在数字列中引用数字值:
insert into energymetersdata(col1, col2, col3, col4, col5)
values('20_lab5a_daicel_20_kwh', '2016-02-06 12:02:13', 8422587, 1, 42772501540.0694)");
最后,即使我强烈反对,您也可以做自己想做的事情:
insert into energymetersdata
values(DEFAULT, '20_lab5a_daicel_20_kwh', '2016-02-06 12:02:13', 8422587, 1, 42772501540.0694)");
但是正确的方法是:
尝试像这样更改您的Query_String
String Query_String = "INSERT INTO tablename(field1,field2) VALUES ('"+Text1+"','"+Text2+"')";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.