MYSQL TRIGGER

domenica 22 luglio 2007 - 09.18

killer Profilo | Newbie

Salve ho notato questa funzionalita sul nuovo mysql 5.2 ho seguito le procedure..comes sul sito dev.mysql.....pero non accade nulla...uhm...magari non ho be capito...chissa ...non ho errori suu lla creazione ma quando richiamo il trigger mi vizualizza un valore nullo...magari ce qualcosa che non va...

nel forum di supporto ce chi dice che hanno qualce bug.... qualcuno li usa gia ? di buona lena?

mi interesserebbero perche ho un esigenza di creare una procedura che importi dei dati in 2 differenti db e in due differenti campi...

cioe prendo un valore da un campo e lo inserisco in un altro...(VOI DIRETE ! E LE STORE PROCEDURE!!! CHE CE STANNO A FA! eheh)..pero...poi mi servirebbe che quando si aggiorna uno in automatico si aggiorna l altro...

a quanto letto i trigger dovrebbero fare al caso mio..

comunque se pensate che sia meglio una store procedure...ditemi pure sono tutto orecchie..
P.s se avete anche esempi non li disprezzo di certo..

thanx

PS sicuramente benaglia ha la soluzione per ora mi ha dato i consigli giusti

lbenaglia Profilo | Guru

>PS sicuramente benaglia ha la soluzione per ora mi ha dato
>i consigli giusti

Il fatto è che il Benaglia non conosce MySQL
Ad ogni modo un trigger DML puoi considerarlo una particolare stored procedure che viene richiamata durante una operazione di INSERT, UPDATE o DELETE (in base agli eventi che sono stati previsti nella definizione del trigger stesso).

In generale è meglio non abusarne, dato che mantengono aperta la transazione fin tanto che non è terminata la loro esecuzione, diminuendo quindi la scalabilità del database.

Ora, se posti la struttura della tabella e la logica di popolamento proverò a farti un esempio (in Transact SQL per SQL Server ).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

killer Profilo | Newbie

eheh adesso ti scrivo un poema.. ti allego il codice il ragionamento la struttura e la mia idea sulle store procedure e sui cursori...

//STRUTTURA TABELLE:

************************

SET FOREIGN_KEY_CHECKS=0;
use triggerprova;
#----------------------------
# Table structure for tabella
#----------------------------
CREATE TABLE `tabella` (
`id` int(10) NOT NULL auto_increment,
`nome` char(20) default NULL,
`father_id` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 9216 kB; InnoDB free: 9216 kB; InnoDB free: 921';
#----------------------------
# Records for table tabella
#----------------------------


insert into tabella values
(1, 'prova1', 1),
(2, 'prova2', 1),
(3, 'prova3', 1);
#----------------------------
# Table structure for tabella2
#----------------------------
CREATE TABLE `tabella2` (
`id1` int(10) NOT NULL auto_increment,
`nome1` char(20) default NULL,
`father_id1` int(10) default NULL,
PRIMARY KEY (`id1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 9216 kB; InnoDB free: 9216 kB; InnoDB free: 921';
#----------------------------
# Records for table tabella2
#----------------------------


insert into tabella2 values
(1, 'prova1', 1),


***************************************

QUELLO CHE SERVE:
***************************************
1 STEP aggiornare le tabella2 con i record della tabella

cioe io come vedi nella tabella ho :
(1, 'prova1', 1),
(2, 'prova2', 1),
(3, 'prova3', 1);

a)questi li devo inserire nella tabella2 e se esistono gia devono fare un insert solo dei recordo che mancano

b)poi devo fare un altra store che mi controlli il campo nome se e diverso (magari perche e stato aggiornato nell atabella 1) deve aggiornarsi nella tabella 2 solo quelli diversi.

questo e quello che serve...
************************************************

ps adesso ho scritto ad esempio una semplice procedure di inserimento e funziona perfettamente...l unica cosa e creare i job per far partire la procedura...

ho creato anche una funzione con i cursori pero non funzona a modo...uhmmm...adesso studio un po la cosa

ciao e grazie

killer Profilo | Newbie

nulla benaglia?
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5