Inserção de dados em tabelas
16/10/2013
0
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
Posts
16/10/2013
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
16/10/2013
Alex Lekao
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.
16/10/2013
Francielle Oliveira
Vou tentar fazer a trigger.
16/10/2013
Jefferson Santos
Você sabe criar uma procedure? Uma simples procedure resolve seu problema.
16/10/2013
Francielle Oliveira
Teria que fazer um update dentro da procedure?
16/10/2013
Jefferson Santos
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
16/10/2013
Alex Lekao
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
16/10/2013
Alex Lekao
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
16/10/2013
Jefferson Santos
Francielle em caso de duvidas em criação da trigger me avise que te auxilio.
Alex - FLWS
16/10/2013
Francielle Oliveira
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;
16/10/2013
Alex Lekao
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.
16/10/2013
Jefferson Santos
Está correto.
rs
17/10/2013
Jefferson Santos
17/10/2013
Alex Lekao
Parabens!!!
Continue firme e forte!!!!
Gostei da "filosofada"... rssr
Clique aqui para fazer login e interagir na Comunidade :)