Inserção de dados em tabelas
GOSTARIA DE AJUDA PARA MONTAR O CÓDIGO PARA QUE AO FAZER UM INSERT NA TABELA ESTOQUE ELA ATUALIZE E INSIRA NA TABELA PRODUTO.
USEI AS TABELAS ABAIXO.
CREATE TABLE ESTOQUE
(COD_ESTOQUE NUMBER(4) CONSTRAINT PK_ESTOQUE PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
QTDE_MINIMA NUMBER(11) NOT NULL,
QTDE_ESTOQUE NUMBER(11) NOT NULL
);
CREATE TABLE PRODUTO
(COD_PRODUTO NUMBER(4) CONSTRAINT PK_PRODUTO PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
COD_FORNECEDOR NUMBER(4) REFERENCES FORNECEDOR(COD_FORNECEDOR),
QTDE_MINIMO_PRODUTO NUMBER(4) NOT NULL
);
USEI AS TABELAS ABAIXO.
CREATE TABLE ESTOQUE
(COD_ESTOQUE NUMBER(4) CONSTRAINT PK_ESTOQUE PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
QTDE_MINIMA NUMBER(11) NOT NULL,
QTDE_ESTOQUE NUMBER(11) NOT NULL
);
CREATE TABLE PRODUTO
(COD_PRODUTO NUMBER(4) CONSTRAINT PK_PRODUTO PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
COD_FORNECEDOR NUMBER(4) REFERENCES FORNECEDOR(COD_FORNECEDOR),
QTDE_MINIMO_PRODUTO NUMBER(4) NOT NULL
);
Francielle Oliveira
Curtidas 0
Respostas
Alex Lekao
16/10/2013
Ola Francielle, boa tarde!!!
Desculpe, mas esses codigos sao apenas testes para conhecimento seu e pratica com sql ou esta montando alguma coisa e deseja fazer uso?
Caso seja especificamente para conhecimento, acredito que vc podera utilizar uma trigguer com o after insert ele de um insert na outra tabela.
Caso seja para producao e utilizacao disso mais efetiva, digamos assim, vc precisa analisar melhor a sua modelagem para fazer as insercoes, pq as suas tabela vao apresentar redundancias.
Espero que ajude.
Abraco.
Alex - Lekao
Desculpe, mas esses codigos sao apenas testes para conhecimento seu e pratica com sql ou esta montando alguma coisa e deseja fazer uso?
Caso seja especificamente para conhecimento, acredito que vc podera utilizar uma trigguer com o after insert ele de um insert na outra tabela.
Caso seja para producao e utilizacao disso mais efetiva, digamos assim, vc precisa analisar melhor a sua modelagem para fazer as insercoes, pq as suas tabela vao apresentar redundancias.
Espero que ajude.
Abraco.
Alex - Lekao
GOSTEI 0
Alex Lekao
16/10/2013
Oi Franciele,
da uma olhada neste link
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Definidas_pelo_Usu%C3%A1rio_e_Triggers/Triggers
fala sobre postgree, mas acho que deve dar uma ajuda para ter uma nocao das trigguers.
da uma olhada neste link
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Definidas_pelo_Usu%C3%A1rio_e_Triggers/Triggers
fala sobre postgree, mas acho que deve dar uma ajuda para ter uma nocao das trigguers.
GOSTEI 0
Francielle Oliveira
16/10/2013
São para conhecimento e prática, gosto de programação mais tenho muita dificuldade com banco de dados, algumas coisas consigo e outras tenho mais dificuldade como este caso que estou citando acima.
Vou tentar fazer a trigger.
Vou tentar fazer a trigger.
GOSTEI 0
Jefferson Santos
16/10/2013
Francielle,
Você sabe criar uma procedure? Uma simples procedure resolve seu problema.
Você sabe criar uma procedure? Uma simples procedure resolve seu problema.
GOSTEI 0
Francielle Oliveira
16/10/2013
Na verdade não mais posso tentar fazer uma para verificar se resolve.
Teria que fazer um update dentro da procedure?
Teria que fazer um update dentro da procedure?
GOSTEI 0
Jefferson Santos
16/10/2013
Segue um modelo de procedure simples:
Tente edita-la para seu uso.
Lembrando de fazer o update nas duas tabelas, depois de pronta só rodar a procedure.
CREATE PROCEDURE sp_AlteraCliente_Update -- Procedure de Alteração TbCliente ( @IdCliente int , @sNome varchar(50) = NULL , @sApelido varchar(30) = NULL , @sCPF varchar(15) = NULL , @sContato VARCHAR(15) = NULL , @sContato2 VARCHAR(15) = NULL , @sEmail VARCHAR(50) = NULL , @datNasc datetime = NULL ) AS UPDATE dbo.tbCliente SET sNome = IsNull(@sNome, sNome) , sApelido = IsNull(@sApelido , sApelido ) , sCPF = IsNull(@sCPF, sCPF) , sContato = IsNull(@sContato, sContato) , sContato2 = IsNull(@sContato2, sContato2) , sEmail = IsNull (@sEmail, sEmail) , datNasc = IsNull(@datNasc, datNasc) WHERE IdCliente = @IdCliente
Tente edita-la para seu uso.
Lembrando de fazer o update nas duas tabelas, depois de pronta só rodar a procedure.
exec sp_AlteraFuncionario_Update '1', 'Jeferson Coutinho','Coutinho','00100305911','02126516487','02172188188', 'jeffersoncoutinho@terra.com.br', '19881027' -- Modo de execução de Procedure
GOSTEI 0
Alex Lekao
16/10/2013
São para conhecimento e prática, gosto de programação mais tenho muita dificuldade com banco de dados, algumas coisas consigo e outras tenho mais dificuldade como este caso que estou citando acima.
Vou tentar fazer a trigger.
Vou tentar fazer a trigger.
Legal Francielle, eh bom fazer bastante teste mesmo para fica bem aprendido(nem sei se existi "aprendido"... rssrrsr).
Trigguers e Procedures sao muito utilizadas para atualizacao de dados etc.
Vale muito a pena aprender. rsrsr
GOSTEI 0
Alex Lekao
16/10/2013
Oi Jefferson,
Para essa necessidade que ela estava mencionando nao seria melhor o uso da trigguer? que ela nao necessitaria de uma chamada, certo?
Nao tenho tanta pratica assim com essas coisas, nem sou programador... rsrsr
Para essa necessidade que ela estava mencionando nao seria melhor o uso da trigguer? que ela nao necessitaria de uma chamada, certo?
Nao tenho tanta pratica assim com essas coisas, nem sou programador... rsrsr
GOSTEI 0
Jefferson Santos
16/10/2013
A trigger também é uma ótima opção, sem problemas.
Francielle em caso de duvidas em criação da trigger me avise que te auxilio.
Alex - FLWS
Francielle em caso de duvidas em criação da trigger me avise que te auxilio.
Alex - FLWS
GOSTEI 0
Francielle Oliveira
16/10/2013
Fiz da seguinte maneira, estou no caminho certo?
CREATE TRIGGER atualiza_tabela ON produto
FOR INSERT
AS
Begin
Insert into estoque (Cod_estoque,Nome_Produto,Qtde_Minima,Qtde_Estoque) values (´1,'Tesoura',1, 100´);
end;
CREATE TRIGGER atualiza_tabela ON produto
FOR INSERT
AS
Begin
Insert into estoque (Cod_estoque,Nome_Produto,Qtde_Minima,Qtde_Estoque) values (´1,'Tesoura',1, 100´);
end;
GOSTEI 0
Alex Lekao
16/10/2013
acredito que sim.
so que no insert talvez seja interessante vc colocar um select referente ao que vc acabou de inserir, se eh isto que vc esta intencionando.
so que no insert talvez seja interessante vc colocar um select referente ao que vc acabou de inserir, se eh isto que vc esta intencionando.
GOSTEI 0
Jefferson Santos
16/10/2013
Se lhe retornar o que você quer...
Está correto.
rs
Está correto.
rs
GOSTEI 0
Francielle Oliveira
16/10/2013
Vlw pessoal pela ajuda consegui...rsrs
GOSTEI 0
Jefferson Santos
16/10/2013
Paciência e perseverança tem o efeito mágico de fazer as dificuldades desaparecerem e os obstáculos sumirem.
GOSTEI 0
Alex Lekao
16/10/2013
legal...
Parabens!!!
Continue firme e forte!!!!
Gostei da "filosofada"... rssr
Parabens!!!
Continue firme e forte!!!!
Gostei da "filosofada"... rssr
GOSTEI 0
José
16/10/2013
Já que a duvida inicial foi sanada, estou marcando o tópico como concluído.
Fiquem a vontade para abrir novos tópicos.
Fiquem a vontade para abrir novos tópicos.
GOSTEI 0