2009-11-29 5 views
0

Cette méthode continue de jeter l'exception dans le titre, et je ne trouve pas de raison, j'ai créé d'autres tables via la connexion et toutes les tables référencées ont été créées. J'utilise intégré JavaDB.Pourquoi est-ce que je reçois SQLSyntaxErrorException - rencontré ""?

private void createEvidenceTable() throws SQLException 
{ 
    Statement evidenceTable = CONNECTION.createStatement(); 
    evidenceTable.execute("CREATE TABLE evidence("+ 
          "evidence_id INTEGER NOT NULL PRIMARY KEY,"+ 
          "date_added VARCHAR(6) NOT NULL,"+ 
          "evidence_dated VARCHAR(6) NOT NULL,"+ 
          "evidence_file varchar(20),"+ 
          "evidence_text VARCHAR(10),"+ 
          "source_location_id INTEGER,"+ 
          "source_person_id INTEGER,"+ 
          "evidence_type VARCHAR(20),"+ 
"CONSTRAINT evidence__location_source FOREIGN KEY(source_location_id) REFERENCES location_source,"+ 
"CONSTRAINT evidence_person_source FOREIGN KEY(source_person_id) REFERENCES person_source,"+ 
"CONSTARINT evidence_evidence_type FOREIGN KEY(evidence_type) REFERENCES evidence_types)"); 

} 
+0

Dans quelle base de données essayez-vous de créer la table? –

+0

JavaDB, intégré, désolé juste fait un montage. – chrisg

Répondre

5

Un problème défini est que la troisième clause de contrainte est mal orthographié (CONSTARINT iso CONSTRAINT)

+0

Merci pour l'aide, c'était tout. – chrisg

0

Cela a fonctionné dans le client MySQL:

CREATE TABLE evidence 
(
    evidence_id INTEGER NOT NULL, 
    date_added VARCHAR(6) NOT NULL, 
    evidence_dated VARCHAR(6) NOT NULL, 
    evidence_file varchar(20), 
    evidence_text VARCHAR(10), 
    source_location_id INTEGER, 
    source_person_id INTEGER, 
    evidence_type VARCHAR(20), 
    PRIMARY KEY(evidence_id), 
    FOREIGN KEY(source_location_id) REFERENCES location_source(source_location_id), 
    FOREIGN KEY(source_person_id) REFERENCES person_source(source_person_id), 
    FOREIGN KEY(evidence_type) REFERENCES evidence_types(evidence_type) 
); 

Pourquoi utiliser VARCHAR (6) au lieu de RENDEZ-VOUS AMOUREUX? Ça n'a pas beaucoup de sens pour moi.

Questions connexes