Insert a partir de select cada registro numa transação diferente.
17/03/2016
0
Olá Amigos,
Estou com problema numa insert de dados numa tabela a partir de outra, mas vou colocar uma situação simples para que não haja problema de entendimentos.
Uso o PostgreSQL 9.2 e tenho duas tabelas abaixo:
movimento com as seguintes colunas: cod(int), data(date), complemento(char(60)), valor(numeric(10,2))
e os seguintes dados respectivamente:
(1,'2016-03-10','Caneta',1.00)
(2,'2016-03-10','Caderno',5.00)
movalter com as seguintes colunas: cod(int), data(date), complemento(char(60)), valor(numeric(10,2))
e os seguintes dados respectivamente:
(1,'2016-03-11','Sacola',1.00)
(2,'2016-03-11','Papel',0.60)
Preciso inserir os dados da tabela movalter, mas a coluna "cod" tem que seguir a sequencia e ficar com o seguinte resultado:
movimento:
(1,'2016-03-10','Caneta',1.00)
(2,'2016-03-10','Caderno',5.00)
(3,'2016-03-11','Sacola',1.00)
(4,'2016-03-11','Papel',0.60)
Qual seria o insert correto?
Eu tentei este insert, mas não deu certo:
insert into movimento
select (select max(cod)+1 from movimento),data,complemento,valor from movalter
segue scripts para facilitar a resposta:
create table movimento(
cod int primary key,
data date,
complemento char(60),
valor numeric(10,2));
create table movalter(
cod int primary key,
data date,
complemento char(60),
valor numeric(10,2));
insert into movimento
values (1,'2016-03-10','Caneta',1.00),(2,'2016-03-10','Caderno',5.00);
insert into movalter
values (1,'2016-03-11','Sacola',1.00),(2,'2016-03-11','Papel',0.60);
Estou com problema numa insert de dados numa tabela a partir de outra, mas vou colocar uma situação simples para que não haja problema de entendimentos.
Uso o PostgreSQL 9.2 e tenho duas tabelas abaixo:
movimento com as seguintes colunas: cod(int), data(date), complemento(char(60)), valor(numeric(10,2))
e os seguintes dados respectivamente:
(1,'2016-03-10','Caneta',1.00)
(2,'2016-03-10','Caderno',5.00)
movalter com as seguintes colunas: cod(int), data(date), complemento(char(60)), valor(numeric(10,2))
e os seguintes dados respectivamente:
(1,'2016-03-11','Sacola',1.00)
(2,'2016-03-11','Papel',0.60)
Preciso inserir os dados da tabela movalter, mas a coluna "cod" tem que seguir a sequencia e ficar com o seguinte resultado:
movimento:
(1,'2016-03-10','Caneta',1.00)
(2,'2016-03-10','Caderno',5.00)
(3,'2016-03-11','Sacola',1.00)
(4,'2016-03-11','Papel',0.60)
Qual seria o insert correto?
Eu tentei este insert, mas não deu certo:
insert into movimento
select (select max(cod)+1 from movimento),data,complemento,valor from movalter
segue scripts para facilitar a resposta:
create table movimento(
cod int primary key,
data date,
complemento char(60),
valor numeric(10,2));
create table movalter(
cod int primary key,
data date,
complemento char(60),
valor numeric(10,2));
insert into movimento
values (1,'2016-03-10','Caneta',1.00),(2,'2016-03-10','Caderno',5.00);
insert into movalter
values (1,'2016-03-11','Sacola',1.00),(2,'2016-03-11','Papel',0.60);
Laércio Lopes
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)