En cuanto a la instrucción sql que ejecutas, desconozco si mysql funciona, pero creo que está mal escrita.
el comando "SET" se usa para actualizar los registros (UPDATE)
Para usar "INSERT INTO" tendrías estas posibilidades
- Code: Select all Expand view
INSERT INTO clientes (Clave, Nombre) Values ('01', 'NOMBRE 1');
Añade un registro en tabla clientes, grabando en el campo "Clave" el valor "01" y en el campo "Nombre" el valor "NOMBRE 1"
- Code: Select all Expand view
INSERT INTO clientes Values ('01', 'NOMBRE 1');
Sin especificar los valor que quieres actualizar "(Clave, Nombre)"
Añade un registro en tabla clientes y tenemos que indicar en "Values" todos los campos que tenga la tabla, ordenando las columnas a incluir tal cual estén en la tabla "clientes"
En el ejemplo: La tabla clientes tendría que tener sólo 2 campos y además tendrían que estar creados con el campo "Clave" primero y "Nombre" después.
Si la tabla, cuando se creó, se incluyo primero el campo "nombre" y luego el campo "clave", daría error.
- Code: Select all Expand view
INSERT INTO clientes (Clave, Nombre)
Select ... From "Otra tabla"
Where ...;
Igual que en los anteriores, añade registros a la tabla clientes, pero en este caso coge los valores de "Otra tabla".
Se puede quitar "(Clave, Nombre)", sabiendo, como comenté en el apartado anterior, que los campos tendrán que estar ordenador tal cual están en la tabla "clientes".
Este método se usa cuando el registro que queremos añadir está en otra tabla, evitamos tener que pasarlo a variables para luego insertarlo en "clientes".
Además puede añadir mas de un registro. Añade todos los registros que devuelva la consulta ( Select ... From "Otra tabla" Where ... )