Visualizzazione dei risultati da 1 a 8 su 8

Discussione: SQLITE e foreign key

  1. #1

    SQLITE e foreign key

    Anche se creo tabelle con le foreign key, all'atto di inserire dati non presenti su tabelle collegate fila tutto liscio, non mi da errori...cosa fare?

    Uso SQLITE e php

    codice:
    CREATE TABLE esame 
    (id INTEGER PRIMARY KEY, 
    matricola INTEGER NOT NULL, 
    materia INTEGER NOT NULL, 
    voto INTEGER NOT NULL, 
    UNIQUE (matricola,materia), 
    FOREIGN KEY (matricola) REFERENCES persona(id)
     ON UPDATE CASCADE ON DELETE CASCADE, 
    FOREIGN KEY (materia) REFERENCES materia(id) 
    ON UPDATE CASCADE ON DELETE CASCADE );

  2. #2
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    sqlite non ti obbliga a rispettare le foreign key.

  3. #3
    esiste un metodo per far si che sqlite sia obbligato a rispettarle?
    ho letto in giro questa procedura:

    pragma foreign_keys=1;

    ma non funziona oppure non la so usare correttamente!

  4. #4
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Qui ho trovato un articolo che ti può interessare:
    http://www.manuali.net/articoli/prog..._sqlite/1.html

  5. #5
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Originariamente inviato da giondalar777

    pragma foreign_keys=1;
    hai provato con PRAGMA foreign_keys=ON; ?

  6. #6
    si da php con questa funzione:

    function eseguiQuery($query)
    {
    $data = new SQLiteDatabase("universita.sqlite");
    $data->queryExec($query,$err);
    if ($err) errore($err);
    unset($data);
    }

    eseguiQuery("pragma foreign_keys=1");

  7. #7
    ho notato che sull editor di sqlite3 imposti il pragma e poi crei le tabelle con il foreign key tutto funziona perfettamente, infatti quando provo ad inserire (sempre sull editor) una riga nuova con un foreign key inesistente mi da errore.
    Quando lo faccio con php invece errori non ne da e inserisce la nuova riga in tabella!

  8. #8
    ho risolto con i trigger, però così è una scocciatura!!! si deve scrivere piu codice...

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.