Visualizzazione risultati 1 fino 6 di 6

Discussione: Problemi con la Foreign Key con InnoDB

  1. #1
    Guest

    Predefinito Problemi con la Foreign Key con InnoDB

    Salve, ho un problema con il motore InnoDB di phpmyadmin. Praticamente dovrei impostare in una tabella come chiavi esterne (foreign key) tre chiavi unique, collegate a un’altra tabella con queste tre chiavi impostate come primarie.

    Su xampp in locale funziona l’inserimento della constraint foreign key, invece su altervista innoDB non funziona e mi da errore #1215 (cannot add foreign key constraint).

    Quale può essere una soluzione?
    Altervista non supporta una superchiave minimale?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,290

    Predefinito

    Salve,
    quell'errore, normalmaente appare quando la definizione della chiave esterna è diversa dalla chiave di riferimento.

    Non nè sono sicuro, ma penso che su AlterVista non siano supportate le superchiavi.

    Cordiali saluti.

  3. #3
    stefanodurso non è connesso Utente giovane
    Data registrazione
    18-10-2018
    Messaggi
    81

    Predefinito

    Ion non sono pratico di queste cose, ma facendo una ricerca sul forum con chiave "foreign" parrebbe che le foreign key siano usabili su Altervista.
    Vedi tu se quelle discussioni ti possono essere utili

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,760

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    ma penso che su AlterVista non siano supportate le superchiavi.
    Dove lo hai letto?

    Io comunque ho provato a fare un mini esempio e funziona correttamente:
    Codice:
    CREATE TABLE `persone` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nome` int(11),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;
    
    
    CREATE TABLE `nomi` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `id_nome` int(11) NOT NULL,
      `stringa_nome` VARCHAR(255),
      PRIMARY KEY (`id`),
      FOREIGN KEY (`id_nome`) REFERENCES `persone`(`id`)
    ) ENGINE=InnoDB;
    
    
    INSERT INTO persone (nome) VALUES (1);
    INSERT INTO persone (nome) VALUES (1);
    INSERT INTO persone (nome) VALUES (2);
    INSERT INTO persone (nome) VALUES (2);
    INSERT INTO persone (nome) VALUES (3);
    INSERT INTO persone (nome) VALUES (3);
    
    INSERT INTO nomi (stringa_nome, id_nome) VALUES ('Alessandro', 1);
    INSERT INTO nomi (stringa_nome, id_nome) VALUES ('Brigite', 2);
    INSERT INTO nomi (stringa_nome, id_nome) VALUES ('Matteo', 3);
    
    
    SELECT persone.id, nomi.stringa_nome FROM persone INNER JOIN nomi ON persone.nome = nomi.id_nome
    Ultima modifica di alemoppo : 22-05-2020 alle ore 22.12.00

  5. #5
    fatturaelettro non è connesso Neofita
    Data registrazione
    23-10-2020
    Messaggi
    2

    Predefinito

    Io ho provato il tuo stesso esempio dopo aver acquistato ed attivato InnoDB ed il risultato è davvero discordante

    CREATE TABLE `personepr` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `nome` int(11),
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;


    CREATE TABLE `nomipr` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `id_nome` int(11) NOT NULL,
    `stringa_nome` VARCHAR(255),
    PRIMARY KEY (`id`),
    FOREIGN KEY (`id_nome`) REFERENCES `personepr`(`id`)
    ) ENGINE=InnoDB;


    Errore
    Query SQL:





    CREATE TABLE `nomipr` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `id_nome` int(11) NOT NULL,
    `stringa_nome` VARCHAR(255),
    PRIMARY KEY (`id`),
    FOREIGN KEY (`id_nome`) REFERENCES `personepr`(`id`)
    ) ENGINE=InnoDB;
    Messaggio di MySQL: Documentazione

    #1142 -

    Come vedi questo è l'errore.

    Qualcuno ha idea di come si risolve ????

    Grazie

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,760

    Predefinito

    Puoi riprovare ora?

    Ciao!

Tags for this Thread

Regole di scrittura

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