Esta es una solución en la que tiene muchos campos de la tabla y no quiere conseguir un calambre dedo de haber escrito todos los campos, sólo tienes que escribir los necesarios :)
Cómo copiar algunas filas en la misma mesa, con algunos campos tienen diferentes valores:
- Crear una tabla temporal con todas las filas que desea copiar
- Actualizar todas las filas de la tempora tabla ry con los valores que desee
- Si usted tiene un campo de incremento automático, deberá ajustar a NULL en la tabla temporal
- copiar todas las filas de la tabla temporal en la tabla original
- eliminar la tabla temporal
Su código:
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 general de escenario:
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 creación de la tabla temporal utiliza la palabra clave TEMPORARY
que será dado de baja automáticamente cuando finaliza la sesión (como @ ar34z sugerido).
¿hay alguna manera de hacerlo sin tener que especificar los nombres de las columnas? – Andrew
No es que yo sepa. Por supuesto, si su tabla tiene como 1000 columnas o algo así y no quiere escribirlas todas, entonces podría escribir una declaración SQL para construir su declaración SQL :). La forma en que lo haría sería utilizar el information_schema para obtener los nombres de columna para la tabla. Pero eso es realmente exagerado, solo escribiría los nombres de las columnas. – dcp
exactamente el ejemplo que necesitaba, gracias. No estaba seguro si podrías hacerlo de esa manera. – salonMonsters