Esta é uma solução em que você tem muitos campos em sua tabela e não deseja que a cãibra ocorra ao digitar todos os campos, basta digitar os necessários :)
Como copiar algumas linhas na mesma tabela, com alguns campos com valores diferentes:
- Crie uma tabela temporária com todas as linhas que você deseja copiar
- Atualize todas as linhas da tabela temporária com os valores desejados
- Se você tiver um campo de incremento automático, defina-o como NULL na tabela temporária
- Copie todas as linhas da tabela temporária para sua tabela original
- Excluir a tabela temporária
Seu 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 geral do cenário:
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 a criação da tabela temporária usa a TEMPORARY
palavra-chave, ela será descartada automaticamente quando a sessão terminar (como @ ar34z sugeriu).