Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Trigger conta righe
lunedì 25 giugno 2007 - 21.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mauss
Profilo
| Newbie
4
messaggi | Data Invio:
lun 25 giu 2007 - 21:17
Salve a tutti sono nuovo e avrei alcune info da chiedervi.
Dovrei fare una funzione trigger che ogni volta che trova D in una tabella X mi toglie 1 dalla tabella Y e ogni volta che trova I nella tabella X mi aggiunge 1 alla tabella Y. Nella tabella Y c'è un numero di default.
Non so se mi sono spiegato, spero di sì.
Comunque grazie in anticipo.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 25 giu 2007 - 21:28
>Dovrei fare una funzione trigger che ogni volta che trova D in
>una tabella X mi toglie 1 dalla tabella Y e ogni volta che trova
>I nella tabella X mi aggiunge 1 alla tabella Y. Nella tabella
>Y c'è un numero di default.
>Non so se mi sono spiegato, spero di sì.
Ciao mauss,
che DBMS utilizzi?
Potresti postare i comandi DDL delle tabelle (CREATE TABLE...) spiegando dettagliatamente cosa intendi con "ogni volta che trova..."?
>Comunque grazie in anticipo.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
mauss
Profilo
| Newbie
4
messaggi | Data Invio:
lun 25 giu 2007 - 21:34
Io ho questa tabella Statistiche che è destinataria di un'altro trigger statistiche_paziente che agisce in questo modo:
se tolgo mi inserisce nella tabella sottostante una 'D' se aggiungo mi mette 'I'
- Function: statistiche_paziente()
-- DROP FUNCTION statistiche_paziente();
CREATE OR REPLACE FUNCTION statistiche_paziente()
RETURNS "trigger" AS
$BODY$
BEGIN
-- Crea una riga nella tabella che riflette le modifiche fatte
-- nel database
IF (TG_OP = 'DELETE') THEN
INSERT INTO statistiche SELECT 'D', user, now();
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO statistiche SELECT 'U', user, now();
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO statistiche SELECT 'I', user, now();
RETURN NEW;
END IF;
RETURN NULL;
-- Ignora il risultato perchè siamo dopo del trigger
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION statistiche_paziente() OWNER TO postgres;
-- Table: statistiche
-- DROP TABLE statistiche;
CREATE TABLE statistiche
(
tipo_accesso character(20) NOT NULL,
nome_utente character varying NOT NULL,
tempo timestamp with time zone NOT NULL
)
WITHOUT OIDS;
ALTER TABLE statistiche OWNER TO postgres;
vorrei fare un'altra tabella con un numero di default e un trigger che mi conta le D e le I e di conseguenza mi aggiunge 1 o toglie 1.
Grazie mille
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 25 giu 2007 - 21:37
>Io ho questa tabella Statistiche che è destinataria di un'altro
>trigger statistiche_paziente che agisce in questo modo:
>se tolgo mi inserisce nella tabella sottostante una 'D' se aggiungo
>mi mette 'I'
A parte che non ho ancora capito quello che vuoi fare, comunque vedo che utilizzi PostreSQL che non conosco, pertanto passo la palla a gente più competente di me
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
mauss
Profilo
| Newbie
4
messaggi | Data Invio:
lun 25 giu 2007 - 21:46
Ok, grazie lo stesso
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !