DUPLICAR REGISTRO - PRIMARY KEY
Boa tarde galera.
Estou tentando duplicar registros no meu sistema. E etou utilizando o seguinte metodo:
Porem como não consigo tirar o campo chave primária desta instrução recebo o erro que esta duplicando um registro de chave primaria X.
A solução seria colocar campo a campo que estou inserindo, porém são muitas tabelas que precisarei ter esta função então não sei como fazer.
A idéia era fazer um metodo genérico para atender todos.
Alguem sugere algo para resolver isto ?
Estou tentando duplicar registros no meu sistema. E etou utilizando o seguinte metodo:
insert into tbl_a select * from tbl_a where condicao
Porem como não consigo tirar o campo chave primária desta instrução recebo o erro que esta duplicando um registro de chave primaria X.
A solução seria colocar campo a campo que estou inserindo, porém são muitas tabelas que precisarei ter esta função então não sei como fazer.
A idéia era fazer um metodo genérico para atender todos.
Alguem sugere algo para resolver isto ?
vc quer duplicar um registro com chave primaria, de nenhum modo dará certo, chave primaria não se repete.
Se é o que eu entendi.
Se é o que eu entendi.
Opa tente assim, se seu campo de chave primaria for autoincrement vai dar certo :)
só não colocar o campo código
sql = [Ô]INSERT INTO tbl_a(campo2,campo3) Select campo2,campo3 From tbl_a[Ô]
Banco.ExecutaQuery(sql)
só não colocar o campo código
Nilson, quero criar uma copia do registro.
MESTRE, é isso que eu preciso, porém quero um metodo para duplicar registro de qualquer tabela, então não posso fazer desta forma.
Pensei um pouco aqui e acho que o jeito é assim:
Pois todas minhas tabelas uso o campo chamado [Ô]codigo[Ô] como chave primaria e é auto increment, ou eu trato pelo campo [Ô]key[Ô] que o Show Columns retorna.
MESTRE, é isso que eu preciso, porém quero um metodo para duplicar registro de qualquer tabela, então não posso fazer desta forma.
Pensei um pouco aqui e acho que o jeito é assim:
MySqlCommand cmd = new MySqlCommand([Ô]SHOW COLUMNs FROM anvisa[Ô],conecta.conexao);
MySqlDataReader dr = cmd.ExecuteReader ();
while (dr.Read())
{
if (dr.GetString(dr.GetOrdinal([Ô]Field[Ô])) != [Ô]codigo[Ô]){
// aqui eu monto a string dos campos que serao inseridos e campos selcionados na query
}
}
Pois todas minhas tabelas uso o campo chamado [Ô]codigo[Ô] como chave primaria e é auto increment, ou eu trato pelo campo [Ô]key[Ô] que o Show Columns retorna.
Tópico encerrado , respostas não são mais permitidas