Buongiorno a tutti, mi sono da pochissimo affacciata nel mondo SQL e sono un po' in crisi.
Ho copiato il seguente codice da un'esercitazione, in teoria dovrebbe essere giusta, ma in realtà non lo è... ho cercato di capire l'errore, ma forse proprio per la mia inesperienza non riesco ben a capire dove sta.
codice:
create schema TeatroSQL {
create domain tipoBiglietto as varchar(8)
default "Intero"
check (tipoBiglietto in ('Intero', 'Ridotto', 'Studenti'))
create domain mansione as varchar(5)
check (mansione in ('CA', 'POD', 'CUSRP', 'ACF'))
create domain tipoProduttore as varchar(7)
check (tipoProduttore in ('interno', 'esterno'))
create table teatro
(
nome varchar(20) primary key,
telefono varchar(15),
fax varchar(15),
indirizzo varchar(40) not null,
email varchar(30),
url varchar(30)
)
create table biglietteria
(
nome varchar(20) primary key,
indirizzo varchar(40) not null,
email varchar(30),
telefono varchar(15),
teatro varchar(20) foreign key references teatro(nome)
on update cascade on delete set null
)
...
codice:
create view dipendenti(teatro, cognome, nome, cf, età, telefonoFisso,
telefonoMobile, email, stipendio, dataDiAssunzione, ruolo, cda) as
select L.teatro, D.cognome, D.nome, D.cf,
case
when ((month(current_date) > month(D.dataDiNascita)) or
(month(current_date) = month(D.dataDiNascita) and
day(current_date) >= day(D.dataDiNascita)))
then year(current_date) - year(D.dataDiNascita)
else year(current_date) - year(D.dataDiNascita) - 1
end,
D.telefonoFisso, D.telefonoMobile, D.email, S.stipendio,
L.dataDiAssunzione, L.ruolo, L.cda
from lavoro L, dipendente D, stipendio S
where (L.dipendente = D.cf) and (S.dipendente = D.cf) and
(S.inizio = (select max(S2.inizio)
from stipendio S2
where S2.dipendente = D.cf))
order by L.teatro, D.cognome, D.nome
create view statScena(spettacolo, paganti, affluenza, incasso) as
select Sce.spettacolo, count(*), count(*) / Spa.capienza, sum(P.prezzo)
from messaInScena Sce, spazio Spa, prenotazione P
where (Sce.spazio = Spa.nome) and
(P.dataSpettacolo = Sce.data) and
(P.oraSpettacolo = Sce.ora) and
(P.spazioSpettacolo = Sce.spazio)
group by Sce.data, Sce.ora, Sce.spazio
create view statSpettacolo(spettacolo, paganti, affluenza, incasso) as
select Spe.titolo, avg(Sce.paganti), avg(Sce.affluenza), avg(Sce.incasso)
from spettacolo Spe, statScena Sce
where (Spe.titolo = Sce.spettacolo)
group by Spe.titolo
}
L'errore è il seguente: Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{
create domain tipoBiglietto as varchar(8) default "Intero" check (tipoBi' at line 2
Vi prego aiutatemi a trovarlo e a capire!Grazie!