|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
09-10-2008, 10.32.47 | #1 | ||
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
[MySQL] - Trigger? o no?
Sto realizzando un database su un sistema di videonoleggio. Tra le varie tabelle che ho realizzato ce ne sono due in particolare: NOLEGGIO e DVD: Quota:
Quota:
Quello che devo fare a questo punto è questo: 1) Inserire un nuovo noleggio corrente nella tabella NOLEGGIO. Di conseguenza l’attributo quantità nella tabella DVD relativo al dvd che è noleggiato viene decrementato di 1 unità automaticamente . E' possibile inserire un noleggio corrente solo se l’attributo quantità relativo al dvd che si vuole noleggiare è maggiore di zero. 2) Aggiorna un noleggio da corrente a passato nella tabella NOLEGGIO, nel momento in cui il dvd viene restituito. Di conseguenza l’attributo quantità nella tabella DVD relativo al dvd che è noleggiato viene incrementato di una unità automaticamente. Vi prego se c'è qualcuno che sa metterci mano e ha tempo da perderci mi date una mano? sono disperato Ultima modifica di Poseidon : 13-10-2008 alle ore 09.50.43 |
||
09-10-2008, 13.04.18 | #2 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Un appunto sulla creazione delle tabelle.
Per il campo id_nol di noleggio e id_dvd di dvd puoi evitare di scrivere NOT NULL, i campi auto_increment non saranno mai nulli, inoltre primary key sottointende NOT NULL. NOT NULL lo metteri per il campo quantita di DVD invece, qui sono andato a occhio perché non so come lo hai pensato. Che tipo di progetto è? Una web application? Che linguaggio stai utilizzando? |
09-10-2008, 13.15.20 | #3 |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
Grazie per le dritte adesso sistemo il codice. E' un progetto per un piccolo database su un sistema di videonoleggio. Uso MySQL.
Per quanto riguarda il problema specifico che ho proposto, nessuna idea? Ultima modifica di Poseidon : 09-10-2008 alle ore 15.13.44 |
09-10-2008, 15.51.35 | #4 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
Ma è un progetto java stand-alone usando JDBC ?
|
10-10-2008, 08.33.55 | #5 |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
umm no java non c'entra niente, sto usando MySQL
|
10-10-2008, 08.52.45 | #6 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Si, ma la domanda penso sia questa in realtà: il database, una volta messo in funzione, farà tutto da solo e dall'esterno si potrà interagire su di esso solo tramite la console di MySQL o sarà possibile gestirlo con un qualche programma in dotazione ad esempio al proprietario della videoteca?
Non penso si possa fare senza avere un software che interagisce col database, sennò chi gli dice che un dvd è stato affittato oppure che è stato restituito? Ad un cliente che vuole sapere i film in listino oppure allo stesso proprietario della videoteca penso tu debba presentare un interfaccia diversa dalla console di MySQL, non dovrà mica scrivere select * from film; Ultima modifica di Alhazred : 10-10-2008 alle ore 08.58.13 |
10-10-2008, 10.00.14 | #7 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
Quoto Alhazred. Un sw. è composto di solito da 3 strati: Interfacce grafiche, Manager e Gestione dei Dati. Per intenderci, i controlli di cui parli (ad es. verifica quantità DVD >0) vanno fatti nel programma (Manager) che interagisce col DB (Gestione Dati). Se non è Java, sarà C, C++, VISUAL BASIC, COBOL...
|
13-10-2008, 08.34.56 | #8 |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
aah ok capito il dubbio: no non mi serve alcuna interfaccia grafica, perkè è parte di 1 progetto per un esame universitario, e non mi si richiede alcuna interfaccia grafica.
|
13-10-2008, 09.21.04 | #9 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
Quindi deduco che ti servono solo delle query che eseguono le operazioni di cui parlavi.
|
13-10-2008, 09.45.48 | #10 | |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
Esattamente .. io ho pensato 1 codice di questo tipo, ma non funziona e ovviamente non essendo 1 esperto non ne capisco il motivo:
Quota:
Ultima modifica di Poseidon : 13-10-2008 alle ore 10.20.35 |
|
13-10-2008, 13.50.12 | #11 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
Da cosa capisci che non funziona, hai dei messaggi d'errore o semplicemente vedi che le operazioni non vengono eseguite ? O addirittura non ti crea i trigger ?
|
13-10-2008, 14.42.32 | #12 |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
dunque se eseguo questo codice nel mio database, in cui le due tabelle coinvolte dal trigger sono come quelle definite sopra, usando MySQL Query Browser mi da semplicemente errore.
"You tried to execute an empty string." Cosa che mi sembra assurda. |
13-10-2008, 14.49.23 | #13 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
La creazione delle tabelle a me è ok, mentre quando creo i trigger mi da errore sul secondo quando trova l'and. Ma come condizione del trigger non basterebbe solo "on update of DataRestEff" che da quanto capisco è la data di restituzione del dvd che viene aggiornata da una funzione ad hoc al momento della restituzione del dvd ?
|
13-10-2008, 15.00.09 | #14 | |
Gold Member
Registrato: 21-09-2002
Messaggi: 2.281
|
beh la DataRestEff viene aggiornata manualmente, inserendo la data di restituzione del dvd, nel momento quello viene restituito, non ho scritto alcuna particolare funziona per questo.
Tu dici quindi di ridurre il codice a questo? .. Quota:
Ultima modifica di Poseidon : 13-10-2008 alle ore 15.27.55 |
|
13-10-2008, 15.43.49 | #15 |
Junior Member
Registrato: 11-09-2008
Messaggi: 53
|
Credo che se si aggiorna DataRestEff vuol dire che il dvd è stato restituito, quindi come condizione dovrebbe essere sufficiente.
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
[MYSQL] perkè questo codice non funziona? | Poseidon | Programmazione | 6 | 03-11-2008 02.44.12 |
[MYSQL] On delete cascade | Alhazred | Programmazione | 2 | 01-10-2008 13.49.20 |
[MySQL] SQLException: Before start of result set | Alhazred | Programmazione | 5 | 20-07-2008 18.57.21 |
[MySQL] query complessa | Thor | Programmazione | 5 | 29-08-2005 04.34.15 |
[mysql] | nana_d | Programmazione | 2 | 20-04-2005 10.38.17 |