Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: [mysql] foreign key

  1. #1

    [mysql] foreign key

    Perchè non mi crea le foreign key in queste tabelle dove sbaglio?

    Create table c_editr
    (
    nome char (50) not null,
    nazionalita char(60),
    c_editr_id integer,
    primary key(c_editr_id)
    );





    create table autore
    (
    nome char (60) not null,
    cognome char(60) not null,
    nazionalita char (60),
    autore_id integer,
    primary key(autore_id)
    );



    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    );

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    nn te le crea e basta?
    dà errori?
    usi mysql?
    quale versione?

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  3. #3
    perchè se usi mysql sono tabelle MyIsam(di default) che non usano i VIR mentre tu devi usare le tabelle InnoDb...

    per fare questo devi modificare il file My di configurazione di Mysql decommentando quello che riguarda innoDB!


    poi alla fine di ogni tabella devi scriverci type=InnoDB

    in questa maniera:
    Codice PHP:
    CREATE TABLE tabella
    (
       .....
    )
    type=InnoDB
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  4. #4
    uso mysql forn ,ma così:

    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    )type=InnoDB;

    mi dà errore....

  5. #5
    Originariamente inviato da kokkus
    uso mysql forn ,ma così:

    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    )type=InnoDB;

    mi dà errore....
    che errore?
    hai editato il file di configurazione per attivare i database di tipo Inno?
    ricordati che la tabella al quale fa riferimento deve essere creata prima delle tabelle che fa il rifermento...(scusa il gioco di parole)
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  6. #6
    mi dice che non può creare la tabella e poi errore numero:150
    Però non so come fare per editare il file di configurazione epr il database.
    Aiutoooo

  7. #7
    Originariamente inviato da kokkus
    mi dice che non può creare la tabella e poi errore numero:150
    Però non so come fare per editare il file di configurazione epr il database.
    Aiutoooo
    dove hai istallato mysql?

    dal manuale :

    If MySQL reports an error number 1005 from a CREATE TABLE statement, and the error message string refers to errno 150, this means that the table creation failed because a foreign key constraint was not correctly formed.


    hai sbagliato qualcosa nei vincoli relazionali !
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  8. #8
    L'ho installato sul mio server e funziona bene.
    Mi dà errore nella creazione delle terza tabella se mett così:

    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    )type=InnoDB;

    senza il pezzo type=Innodn non mi dà errore ma non mi crea le foreign key

  9. #9
    Originariamente inviato da kokkus
    L'ho installato sul mio server e funziona bene.
    Mi dà errore nella creazione delle terza tabella se mett così:

    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    )type=InnoDB;

    senza il pezzo type=Innodn non mi dà errore ma non mi crea le foreign key
    Non vedo gli indici e sopratutto i campi di riferimento... il reference deve essere tra pippo e pallino...

    qui mancano i "pippo"....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    stavo per risponderti prima del CRASH del server di HTML(era off-line)...

    sbagli completamente la semantica del foreing key

    create table libro
    (
    titolo char (50) not null,
    genere char(50) not null,
    libro_id integer,
    primary key(libro_id),
    foreign key(c_editr_id) references c_editr(c_editr_id),
    foreign key(autore_id) references autore(autore_id)
    )type=InnoDB;
    devi far fare un riferimento esterno da un elemento della tabella!!!
    tu fai fare rifermento esterno da un elemento che non sta nella suddetta tabella..conosci come funzionano i VIR?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.