Visualizzazione risultati 1 fino 4 di 4

Discussione: problemi con il "references" in sql

  1. #1
    Guest

    Question problemi con il "references" in sql

    ciao a tutti!
    ho qualche problema in mysql ad usare il references, nel senso che quando creo una tabella che fa dovrebbe controllare l'esistenza di campi su altre tabelle... non funziona!
    ovvero:

    create table prestiti
    (
    ptessera int(6) not null references tessere(tessera),
    pid_libro varchar(8) not null references libri(id),
    pdata date not null,
    primary key (tessera,id_libro)
    )

    anche solo una query cosi semplice da problemi. la accetta ma non se inserisco un valore per ptessera che non esiste in tessere(tessera) lo accetta cmq!
    sia tessera che id sono chiavi primarie delle rispettive tabelle e sono esattamente nello stesso formato di ptessere e pid_libro.

    sapete aiutarmi? grazie

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Tu vuoi usare l'integrità referenziale.
    A quanto ne so in Mysql per farlo devi usare le tabelle innoDB che su AV non si possoono usare!
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    Guest

    Predefinito

    Hai dimenticato la 'p' davanti alle due primary key, prova in questo modo:

    create table prestiti
    (
    ptessera int(6) not null,
    pid_libro varchar(8) not null,
    pdata date not null,
    primary key (ptessera,pid_libro),
    foreign key (ptessera) references tessere(tessera),
    foreign key (pid_libro) references libri(id)
    );

  4. #4
    Guest

    Predefinito

    ok grazie!
    si non c'era la 'p' ma quello l'avevo dimenticato solo nel codice riportato qui.
    mi sa che ha ragione binarysun, la versione di mysql che possiamo usare non supporta questo costrutto :(

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •