title: java.sql.SQLException: Column count doesn't match value count at row 1 with Java and MySQL
body: <p>Hi I'm trying to insert in a table the next values. This table has 32 values, the first one is autoincrement so it's no neccesary to put it, but when I execute it I have the next mistake:</p>
  
  <pre><code>java.sql.SQLException: Column count doesn't match value count at row 1
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
  at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
  at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
  at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2371)
  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2355)
  at es.uniway.wscloud.WscloudImpl.sincronizarPedidos(WscloudImpl.java:1729)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:601)
  at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
  at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
  at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
  at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
  at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
  at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
  at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
  at java.lang.Thread.run(Thread.java:722)
  </code></pre>
  
  <p>And this is the query:</p>
  
  <pre><code>SQL="INSERT INTO servidores_virtuales (id_pedido,nombre_servidor,duracion_contrato,cpu_cant,ram_cant,"+
                  "hdd_cant,hdd_unidad,sv_pvp,cpu_pvp,ram_pvp,hdd_pvp,sv_pvp_dist,sv_pvp_dist,cpu_pvp_dist,ram_pvp_dist,hdd_pvp_dist,"+
                  "ip_pvp,ip_pvp_dist,ip_polled_pvp,ip_polled_pvp_dist,ip_custom_pvp,ip_custom_pvp_dist,data_center,cluster,plantilla,"+
                  "estado_aprobacion,f_aprobacion,f_provision,es_actualizacion,f_actualizacion,disco_almacenamiento,id_sv_ccis)VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  
                  int keyServidorV=0;
                  System.out.println("Key de pedido es:"+key);
                  this.pstm = this.conexion.prepareStatement(SQL,PreparedStatement.RETURN_GENERATED_KEYS);
  
  
                  this.pstm.setInt(1, key); //Last insert id de pedido
                  this.pstm.setString(2, pedido.getDatos_SV()[i].getNombre_servidor());
                  this.pstm.setString(3, pedido.getDatos_SV()[i].getDuracion_contrato());
                  this.pstm.setInt(4, pedido.getDatos_SV()[i].getCpu_cant());
                  this.pstm.setString(5, pedido.getDatos_SV()[i].getRam_cant());
                  this.pstm.setString(6, pedido.getDatos_SV()[i].getHdd_cant());
                  this.pstm.setString(7, pedido.getDatos_SV()[i].getHdd_unidad());
                  this.pstm.setDouble(8, pedido.getDatos_SV()[i].getSv_pvp());
                  this.pstm.setDouble(9, pedido.getDatos_SV()[i].getCpu_pvp());
                  this.pstm.setDouble(10, pedido.getDatos_SV()[i].getRam_pvp());
                  this.pstm.setDouble(11, pedido.getDatos_SV()[i].getHdd_pvp());
                  this.pstm.setDouble(12, pedido.getDatos_SV()[i].getSv_pvp_dist());
                  this.pstm.setDouble(13, pedido.getDatos_SV()[i].getCpu_pvp_dist());
                  this.pstm.setDouble(14, pedido.getDatos_SV()[i].getRam_pvp_dist());
                  this.pstm.setDouble(15, pedido.getDatos_SV()[i].getHdd_pvp_dist());
                  this.pstm.setDouble(16, pedido.getDatos_SV()[i].getIp_pvp());
                  this.pstm.setDouble(17, pedido.getDatos_SV()[i].getIp_pvp_dist());
                  this.pstm.setDouble(18, pedido.getDatos_SV()[i].getIp_polled_pvp());
                  this.pstm.setDouble(19, pedido.getDatos_SV()[i].getIp_polled_pvp_dist());
                  this.pstm.setDouble(20, pedido.getDatos_SV()[i].getIp_custom_pvp());
                  this.pstm.setDouble(21, pedido.getDatos_SV()[i].getIp_custom_pvp_dist());
                  this.pstm.setString(22, pedido.getDatos_SV()[i].getData_center());
                  this.pstm.setString(23, pedido.getDatos_SV()[i].getCluster());
                  this.pstm.setString(24, pedido.getDatos_SV()[i].getPlantilla());
                  this.pstm.setInt(25, pedido.getDatos_SV()[i].getEstado_aprobacion());
                  java.sql.Date f_aprobacionAux = new java.sql.Date(pedido.getDatos_SV()[i].getF_aprobacion().getTime());  
                  this.pstm.setDate(26, f_aprobacionAux);
                  java.sql.Date f_provisionAux = new java.sql.Date(pedido.getDatos_SV()[i].getF_provision().getTime());
                  this.pstm.setDate(27, f_provisionAux);
                  this.pstm.setBoolean(28, pedido.getDatos_SV()[i].isEs_actualizacion());
                  if(pedido.getDatos_SV()[i].getF_actualizacion()!=null){
                      java.sql.Date f_actualizacionAux =new java.sql.Date(pedido.getDatos_SV()[i].getF_actualizacion().getTime());
                      this.pstm.setDate(29, f_actualizacionAux);  
                  }else{
  
                    this.pstm.setDate(29, null);
  
                  }
                  this.pstm.setString(30, pedido.getDatos_SV()[i].getDisco_almacenamiento());
                  this.pstm.setInt(31,pedido.getDatos_SV()[i].getId_servidor_virtual_ccis());
  
  
  
  
  
                  switch(pedido.getDatos_SV()[i].getEstado_aprobacion()){
  
  
                       case 0:{
                           switch(estado_pedido){
                               case 0:{
                                   estado_pedido =1;
                                   break;
                               }
                               case 1:{
                                   estado_pedido =1;
                                   break;
                               }
                               case 2:{
                                   estado_pedido = 1;
                                   break;
                               }
  
                           }
                           break;
                       }
                       case 1:{
                           switch(estado_pedido){
  
                              case 0:{
                                  estado_pedido = 2;
                                  break;
                              }
                              case 1:{
                                  estado_pedido =1;
                                  break;
                              }
                              case 2:{
                                  estado_pedido=2;
                                  break;
                              }
                           }
                           break;
                       }
  
                  }
                  if(estado_pedido==2){
                      if(f_aprobacion==null){
                          f_aprobacion = pedido.getDatos_SV()[i].getF_aprobacion();
                      }else{
                          if (f_aprobacion.compareTo(pedido.getDatos_SV()[i].getF_aprobacion())&lt;0){
  
                              f_aprobacion = pedido.getDatos_SV()[i].getF_aprobacion();
                          }else{
                              f_aprobacion = f_aprobacion;
                          }
  
                      }
  
                      if(pedido.getDatos_SV()[i].getF_provision()==null){
                          pedido_provisionado = false;
                      }
                      if(f_provision == null){
                          pedido.getDatos_SV()[i].getF_provision();
                      }else{
                          if(pedido.getDatos_SV()[i].getF_provision().compareTo(f_provision)&gt;0){
                              f_provision=pedido.getDatos_SV()[i].getF_provision();
                          }else{
                              f_provision=f_provision;
                          }
                      }
  
                  }
  
                  String [] duracion = pedido.getDatos_SV()[i].getDuracion_contrato().split(" ");
                  int cant = Integer.parseInt(duracion[0].trim());
                  String unidad = duracion[1].trim().toUpperCase();
  
                  if(unidad_duracion_contrato == ""){
                      unidad_duracion_contrato = unidad;
                      duracion_contrato = cant;
                  }else{
                      if (unidad_duracion_contrato != unidad || duracion_contrato != cant){
                          throw new Exception ("Pedido con diferentes duraciones de contrato: "+pedido.getId_pedido());
                      }
                  }
  
                  int ejecutadoServiVirtual =  this.pstm.executeUpdate();
  
                  if(ejecutadoServiVirtual==0){   
                     try {
                      throw new Exception("Error al grabar Pedidos");
                  } catch (Exception e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
  </code></pre>
  
  <p>Please, could you help me with this?. Thanks so much</p>