Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Trigger plsql

Estas en el tema de Trigger plsql en el foro de Mysql en Foros del Web. Buenas alguien podria ayudarme tengo las siguientes tablas sql CREATE TABLE CLIENTES ( COD_CLI NUMBER(4) PRIMARY KEY, TOTAL_CTAS NUMBER); CREATE TABLE CUENTAS(COD_CLI NUMBER(4), NUM_CUENTA VARCHAR2(10) ...
  #1 (permalink)  
Antiguo 28/02/2011, 15:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 47
Antigüedad: 13 años, 10 meses
Puntos: 0
Trigger plsql

Buenas alguien podria ayudarme tengo las siguientes tablas sql

CREATE TABLE CLIENTES (
COD_CLI NUMBER(4) PRIMARY KEY,
TOTAL_CTAS NUMBER);


CREATE TABLE CUENTAS(COD_CLI NUMBER(4),
NUM_CUENTA VARCHAR2(10) PRIMARY KEY,
SALDO NUMBER);

Me gustaria crear un trigger que al insertar un cod_cliente,numero de cuenta y un saldo en la tabla cuentas

,actualize el total de cuentas del cod_cli de la tabla clientes o inserte una nueva tupla para ese cliente si no existe.


Alguien sabria como hacerlo?
  #2 (permalink)  
Antiguo 28/02/2011, 15:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 8 meses
Puntos: 360
Respuesta: Trigger plsql

Hola danieler87

El primer paso es leer sobre triggers.
El segundo es tratar de hacerlo.
El tercero es postear el codigo con dudas especificas donde tienes problemas.

Por cierto.. por la sintaxis de las tablas y por el titulo del tema, creo que posteaste en el foro equivocado. Debería estar en el foro de oracle y no en el de mysql.

Si es asi, me avisas le pido a un moderador que mueva el tema.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 28/02/2011, 16:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 47
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Trigger plsql

Creo que se hace asi
create or replace trigger
before insert or update of cod_cli on cuentas for each row
declare
cont number;
begin
select count(cod_cli) into cont from clientes where cod_cli=:new.cod_cli;
if cont=0 then
insert into clientes values(:new.cod_cli,'1');
else
update clientes set total_ctas=cont+1 where cod_cli=:new.cod_cli;
end if;
end;
/
  #4 (permalink)  
Antiguo 28/02/2011, 16:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 47
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Trigger plsql

Cita:
Iniciado por danieler87 Ver Mensaje
creo que se hace asi
create or replace trigger
before insert or update of cod_cli on cuentas for each row
declare
cont number;
begin
select count(cod_cli) into cont from clientes where cod_cli=:new.cod_cli;
if cont=0 then
insert into clientes values(:new.cod_cli,'1');
else
update clientes set total_ctas=cont+1 where cod_cli=:new.cod_cli;
end if;
end;
/
y si es de oracle pero bueno ya da igual
  #5 (permalink)  
Antiguo 28/02/2011, 16:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 8 meses
Puntos: 360
Respuesta: Trigger plsql

Ahora si...
que error tienes?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: plsql, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.