Conseguir Excepción Con DB2 incremento automático

novato:

He creado la siguiente tabla:

"CREATE TABLE ParsonCollection "
                + "(id integer not null GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),"
                + "name varchar(20),"
                + "eye varchar(20),"
                + "hair varchar(20),"
                + "height varchar(20),"
                + "weight varchar(20),"
                + "PRIMARY KEY (id))";

entonces yo estoy tratando de insertar en la tabla y aquí es donde estoy funcionando en problemas. Cuando intento de alterar la columna "ID", me sale un error que dice "java.sql.SQLSyntaxErrorException:. Intento de modificar una columna de identidad 'ID'" Esto es lo que las miradas instrucción de inserción como:

"insert into ParsonCollection values(" + q_surround(Name) + ","
            + q_surround(Eye) + "," + q_surround(Hair) + "," + q_surround(Height) + "," + q_surround(Weight) + ",1" + ")";

Sin embargo, cuando yo quite el campo que está insertando en "Identificación", me sale el siguiente error: "java.sql.SQLSyntaxErrorException: El número de valores asignados no es el mismo que el número de columnas especificadas o implícitas." Esto es lo que este inserto miradas declaración como:

"insert into ParsonCollection values(" + q_surround(Name) + ","
            + q_surround(Eye) + "," + q_surround(Hair) + "," + q_surround(Height) + "," + q_surround(Weight) + ")";

¿Cómo puedo superar esto? Parece que cuando solucione una excepción, el otro aparece y viceversa. Gracias.

GMB:

No se puede asignar a una columna de identidad. Dado que no se puede pasar todos los valores de inserción, es necesario enumerar las columnas (omitiendo la columna de identidad):

"insert into ParsonCollection (
    name,
    eye,
    hair,
    height
    weight
) values(" 
    + q_surround(Name) 
    + "," + q_surround(Eye) 
    + "," + q_surround(Hair) 
    + "," + q_surround(Height)
    + "," + q_surround(Weight)
+ ")";

Nota al margen: su código es abierto a la inyección de SQL. Usted debería considerar seriamente el uso de declaraciones y de vinculación parámetros preparadas en lugar de la concatenación de la cadena de consulta.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364468&siteId=1
Recomendado
Clasificación