Esta es una solución en la que tiene muchos campos en su tabla y no desea que se le caigan los dedos al escribir todos los campos, simplemente escriba los necesarios :)
Cómo copiar algunas filas en la misma tabla, con algunos campos que tienen valores diferentes:
- Cree una tabla temporal con todas las filas que desea copiar.
- Actualice todas las filas de la tabla temporal con los valores que desee.
- Si tiene un campo de incremento automático, debe establecerlo en NULL en la tabla temporal
- Copie todas las filas de la tabla temporal en su tabla original
- Eliminar la tabla temporal
Tu codigo:
CREATE table temporary_table AS SELECT * FROM original_table WHERE Event_ID="155";
UPDATE temporary_table SET Event_ID="120";
UPDATE temporary_table SET ID=NULL
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Código de escenario general:
CREATE table temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
UPDATE temporary_table SET <auto_inc_field>=NULL;
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Código simplificado / condensado:
CREATE TEMPORARY TABLE temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <auto_inc_field>=NULL, <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
INSERT INTO original_table SELECT * FROM temporary_table;
Como la creación de la tabla temporal utiliza la TEMPORARY
palabra clave, se eliminará automáticamente cuando finalice la sesión (como sugiere @ ar34z).