Sembra che SQLite non imponga chiavi esterne per impostazione predefinita. Sto usando sqlitejdbc-v056.jar e ho letto che usando PRAGMA foreign_keys = ON;
si attivano i vincoli di chiave esterna e che questo deve essere attivato in base alla connessione.Come si applicano i vincoli di chiave esterna in SQLite tramite Java?
La mia domanda è: quali istruzioni Java è necessario eseguire per attivare questo comando? Ho provato:
connection.createStatement().execute("PRAGMA foreign_keys = ON");
e
Properties properties = new Properties();
properties.setProperty("PRAGMA foreign_keys", "ON");
connection = DriverManager.getConnection("jdbc:sqlite:test.db", properties);
e
connection = DriverManager.getConnection("jdbc:sqlite:test.db;foreign keys=true;");
ma nessuno di quelli di lavoro. C'è qualcosa che mi manca qui?
Ho visto this answer e voglio fare esattamente la stessa cosa, usando solo JDBC.
Quale versione di SQLite stai usando? (I vincoli di chiave esterna sono stati introdotti in 3.6.19.) – dan04
3.6.14.2, apparentemente. Non lo sapevo nemmeno. – Zarjio