Eu tenho um grande número de linhas que gostaria de copiar, mas preciso alterar um campo.
Posso selecionar as linhas que quero copiar:
select * from Table where Event_ID = "120"
Agora eu quero copiar todas essas linhas e criar novas linhas enquanto configura o Event_ID
para 155
. Como posso fazer isso?
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:
Seu código:
Código geral do cenário:
Código simplificado / condensado:
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).fonte
TEMPORARY
palavra-chave para criar tabelas temporárias. O uso deCREATE TEMPORARY TABLE
eliminará automaticamente a tabela quando a sessão (uma série de consultas SQL) for concluída. Soltar a tabela não seria necessário e não entra em conflito com outras tabelas temporárias usando o mesmo nome. (por exemplo, quando a pirataria ao vivo (que eu não recomendo))ALTER TABLE temporary_table MODIFY <auto_inc_not_null_field> INT;
atualização da chave primária para Null não falharia.Exception: null value in column <auto_inc_not_null_field> violates not-null constraint
. Eu tenteiALTER TABLE temporary_table ALTER COLUMN <auto_inc_not_null_field> DROP NOT NULL;
Digamos que sua mesa tenha duas outras colunas: foo e bar
fonte
Se você tem um monte de colunas em sua tabela e não deseja digitar cada uma delas, pode fazê-lo usando uma tabela temporária, como;
fonte
Ei, que tal copiar todos os campos, alterar um deles para o mesmo valor + outra coisa.
??????????
fonte
Enquanto Event_ID for Inteiro, faça o seguinte:
fonte