Famosissimo server sqlTorno a scrivere trigger in python, semmai.

Posted 18 June 2011 - 20:21
Famosissimo server sqlTorno a scrivere trigger in python, semmai.
Posted 18 June 2011 - 20:24
?[/url]":1ltp2sog] CREATE TRIGGER tr_incasso BEFORE UPDATE ON Storico_vendite
AS
DECLARE ...
...
non funziona, sempre errore di sintassi a riga 2
fc, lo lascio com'è, per il tempo che abbiamo fatto i trigger (1 lezione) non mi stanno a rompere il cazzo per i declare dentro al for each.
Posted 18 June 2011 - 20:25
Posted 18 June 2011 - 20:28
Questa mi mancava... pensavo che si interfacciasse al sql server, non che ne avesse uno suo
?[/url]":1z7vobt4]
Famosissimo server sql
E' famosissimo sì, ci fanno pure conference annuali... in Germania (anche se quest'anno mi pare vogliano farla in Olanda)
Ed i trigger puoi scriverli in una mezza dozzina di linguaggi (C incluso). E così pure per le "funzioni".
Posted 18 June 2011 - 20:37
?[/url]":qlroldy6] Ah ma avete idea di perchè Mysql saltì a piè pari i CHECK?
non sono scemo io eh,
cioè non mi pare una cosina da niente
Easy, non sono supportati.
Le constraint al massimo puoi metterle nel codice, a che serve metterle nel DB?![]()
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
Posted 18 June 2011 - 20:39
?[/url]":18nmpicy]
non funziona, sempre errore di sintassi a riga 2
fc, lo lascio com'è, per il tempo che abbiamo fatto i trigger (1 lezione) non mi stanno a rompere il cazzo per i declare dentro al for each.
http://dev.mysql.com...te-trigger.html
http://dev.mysql.com...en/declare.html
RTFM!![]()
No, dico sul serio, la documentazione di MySQL è un pò casinara ma è completa
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
Posted 18 June 2011 - 20:41
Questa mi mancava... pensavo che si interfacciasse al sql server, non che ne avesse uno suo?[/url]":1rkmm8lz]
E' famosissimo sì, ci fanno pure conference annuali... in Germania (anche se quest'anno mi pare vogliano farla in Olanda)
Ed i trigger puoi scriverli in una mezza dozzina di linguaggi (C incluso). E così pure per le "funzioni".
edit: Anche perché proprio di recente ho dovuto "designare" il nostro "gestore progetti" ed un'alternativa era proprio python + postgres. Non ho trovato nulla che parlasse di python sql server.
Posted 18 June 2011 - 20:45
Posted 18 June 2011 - 22:01
CREATE TRIGGER tr_incasso BEFORE UPDATE ON Storico_vendite FOR EACH ROW BEGIN DECLARE prezzo_n FLOAT; DECLARE prezzo_ns FLOAT; DECLARE prezzo_r FLOAT; DECLARE prezzo_rs FLOAT; DECLARE prezzo_c FLOAT; DECLARE prezzo_cs FLOAT; SELECT prezzo FROM Biglietti WHERE tipo="normale" into prezzo_n; SELECT prezzo FROM Biglietti WHERE tipo="normale_s" into prezzo_ns; SELECT prezzo FROM Biglietti WHERE tipo="ridotto" into prezzo_r; SELECT prezzo FROM Biglietti WHERE tipo="ridotto_s" into prezzo_rs; SELECT prezzo FROM Biglietti WHERE tipo="comitiva" into prezzo_c; SELECT prezzo FROM Biglietti WHERE tipo="comitiva_s" into prezzo_cs; SET NEW.incasso=(prezzo_n*NEW.normale) + (prezzo_ns*NEW.normale_s) + (prezzo_r*NEW.ridotto) + (prezzo_rs*NEW.ridotto_s) + (prezzo_c*NEW.comitiva) + (prezzo_cs*NEW.comitiva_s); END;
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
Posted 18 June 2011 - 22:15
done.correggetemi
dimmelo tu, cosa dovevo fare...
forse chissà, forse potrei cambiare...
Posted 18 June 2011 - 23:39
Si, mi sbagliavo perchè stavo pensando a MSSQL e tu invece mi avevi postato un trigger in MySQL che, per quanto utilizzino entrambi l'SQL, hanno delle differenze di sintassi.Nex, mi sa che ti sbagliavi di grosso.
Posted 19 June 2011 - 08:52
Ma lo penso anch'io, il problema è: come lo scrivo nella relazione del progetto?![]()
Nella sezione "vincoli d'integrità" dovrò dire che i vincoli vengono controllati da php, il che è concettualmente strasbagliato
Scriverò tipo "visto i limiti di mysql (niente check, niente raise_application_error, etc), il controllo sui vincoli di integrità, quando non risolvibili tramite applicazione di valori di default via trigger, viene fatta da php", boh
avevo già letto prima di aprire il topic, non ci sono esempi di trigger con il for each row e variabili dichiarate/inizializzate fuori
DECLARE is permitted only sta gran ceppa di minchia terrona a BEGIN ... END compound statement and must be at its start, before any other statements.
Questa mi mancava... pensavo che si interfacciasse al sql server, non che ne avesse uno suo
edit: Anche perché proprio di recente ho dovuto "designare" il nostro "gestore progetti" ed un'alternativa era proprio python + postgres. Non ho trovato nulla che parlasse di python sql server.
Posted 19 June 2011 - 09:32
Posted 19 June 2011 - 12:03
Mi riferivo all'uso di "AS" che in MySQL non c'è...Il "for each ..." è ansi sql non è che mysql lo faccia a modo suo.
Se fai una insert di 100 records, il "for each" dice appunto "per ogni record inserito".
Per questo si deve mettere la declare dentro e non fuori visto che il trigger crea una funzione che verrà chiamata per ogni record. Quando si scrive un trigger bisogna immaginare cosa creerà il trigger che non è proprio quello che scriviamo noi.
Posted 19 June 2011 - 12:50
?[/url]":pm2focvt]
Ma lo penso anch'io, il problema è: come lo scrivo nella relazione del progetto?![]()
Nella sezione "vincoli d'integrità" dovrò dire che i vincoli vengono controllati da php, il che è concettualmente strasbagliato
Scriverò tipo "visto i limiti di mysql (niente check, niente raise_application_error, etc), il controllo sui vincoli di integrità, quando non risolvibili tramite applicazione di valori di default via trigger, viene fatta da php", boh
Ma per il progetto di basi di dati non era fortemente consigliato usare PostgreSQL?
Almeno, dalle mie parti era così (nonostante qualcuno fosse andato dal professore a chiedergli se poteva usare wordpress)
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
Posted 19 June 2011 - 12:51
?[/url]":3hhsvee5]
Ma per il progetto di basi di dati non era fortemente consigliato usare PostgreSQL?
Almeno, dalle mie parti era così (nonostante qualcuno fosse andato dal professore a chiedergli se poteva usare wordpress)
Noi lo dobbiamo fare obbligatoriamente in mysql, sul server dell'uni.
Figurati che il server è raggiungibile solo dal lab dell'uni, dovrei essere là per farlo
Sto sfruttando un altro hosting, poi esporto tutto là il giorno prima della consegna
Inb4 l'import non funziona e rimando l'esame a luglio
Posted 19 June 2011 - 12:58
?[/url]":12otqrfh]
Noi lo dobbiamo fare obbligatoriamente in mysql, sul server dell'uni.
Figurati che il server è raggiungibile solo dal lab dell'uni, dovrei essere là per farlo
Sto sfruttando un altro hosting, poi esporto tutto là il giorno prima della consegna
Inb4 l'import non funziona e rimando l'esame a luglio
Esportati un dump SQL con create e insert
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici
Posted 19 June 2011 - 13:09
Noi lo dobbiamo fare obbligatoriamente in mysql, sul server dell'uni.
Posted 19 June 2011 - 13:14
?[/url]":2l86meib]
Noi lo dobbiamo fare obbligatoriamente in mysql, sul server dell'uni.
Cioè, aspetta, dovete mettere dei vincoli d'integrità su un db che non li supporta?
Sicuro che non si riferiscano solamente a chiavi primarie/uniche?
Se vi fossero altri vincoli ritenuti significativi se ne può dare una descrizione testuale o in linguaggio semi-formale, come visto a lezione.
Come implementazione di SQL andrà utilizzato il sistema MySQL
FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
Mai più giorni felici