INSERT INTO COM SELECT
Olá, preciso duplicar registro na tabela para que o usuário possa aproveitar o cadastro do produto sem ter que digitar tudo novamente por isso criei um botão DUPLICAR na tela.
O problema é que na tabela existe um campo PRIMARY KEY, AUTOINCREMENT e quando executo o código abaixo da erro por que ele tenta incluir o novo registro com a mesma chave primaria.
Gostaria de saber se existe um jeito de especificar no comando para criar uma chave primaria automaticamente assim como é feito quando se inclui um novo cadastro.
INSERT INTO produtos SELECT FROM produtos WHERE ProdutoID=[ô][Ô] & cProdutoID & [Ô][ô] AND LojistaID=[ô][Ô] & cLojistaID & [Ô][ô]
PS1: Utilizo VB.NET 2013 com o MySQL.
O problema é que na tabela existe um campo PRIMARY KEY, AUTOINCREMENT e quando executo o código abaixo da erro por que ele tenta incluir o novo registro com a mesma chave primaria.
Gostaria de saber se existe um jeito de especificar no comando para criar uma chave primaria automaticamente assim como é feito quando se inclui um novo cadastro.
INSERT INTO produtos SELECT FROM produtos WHERE ProdutoID=[ô][Ô] & cProdutoID & [Ô][ô] AND LojistaID=[ô][Ô] & cLojistaID & [Ô][ô]
PS1: Utilizo VB.NET 2013 com o MySQL.
Citação::
Olá, preciso duplicar registro na tabela para que o usuário possa aproveitar o cadastro do produto sem ter que digitar tudo novamente por isso criei um botão DUPLICAR na tela.
O problema é que na tabela existe um campo PRIMARY KEY, AUTOINCREMENT e quando executo o código abaixo da erro por que ele tenta incluir o novo registro com a mesma chave primaria.
Gostaria de saber se existe um jeito de especificar no comando para criar uma chave primaria automaticamente assim como é feito quando se inclui um novo cadastro.
INSERT INTO produtos SELECT FROM produtos WHERE ProdutoID=[ô][Ô] & cProdutoID & [Ô][ô] AND LojistaID=[ô][Ô] & cLojistaID & [Ô][ô]
PS1: Utilizo VB.NET 2013 com o MySQL.
Bom, se o campo é auto incremento, você não pode informar ele no seu insert!
Ex:
Estrutura da Tabela.
Id - Chave Primaria
Nome - Varchar(200)
preco - Numeric(15,10)
No seu insert, você deve fazer assim:
Insert into produtos (nome, preco) select nome,preco from produtos where id .......
A tabela possui muitos campos!
Não tem como fazer, sem ter que especificar todos os campos da tabela?
Tipo, informar algum comando ou alguma alteração na sintaxe do INSERT abaixo que retire o campo AUTO INCREMENT ?
INSERT INTO produtos SELECT FROM produtos WHERE ProdutoID=[ô][Ô] & cProdutoID & [Ô][ô] AND LojistaID=[ô][Ô] & cLojistaID & [Ô][ô]
Não tem como fazer, sem ter que especificar todos os campos da tabela?
Tipo, informar algum comando ou alguma alteração na sintaxe do INSERT abaixo que retire o campo AUTO INCREMENT ?
INSERT INTO produtos SELECT FROM produtos WHERE ProdutoID=[ô][Ô] & cProdutoID & [Ô][ô] AND LojistaID=[ô][Ô] & cLojistaID & [Ô][ô]
ATSILVA acho que você está com febre e muito alta.
Está querendo fazer ao contrário dos demais, a não
duplicação de regsistro.
Está querendo fazer ao contrário dos demais, a não
duplicação de regsistro.
da pra fazer sim
só desativar, fazer seu insert e ativar novamente...
SET IDENTITY_INSERT [ô]SuaTabela[ô] ON
insert into .....
SET IDENTITY_INSERT [ô]SuaTabela[ô] OFF
bom, isso no sql server, mysql não sei...
só desativar, fazer seu insert e ativar novamente...
SET IDENTITY_INSERT [ô]SuaTabela[ô] ON
insert into .....
SET IDENTITY_INSERT [ô]SuaTabela[ô] OFF
bom, isso no sql server, mysql não sei...
Tópico encerrado , respostas não são mais permitidas