为什么我会遇到SQLSyntaxErrorException - 遇到“”?

问题描述:

此方法不断抛出标题中的异常,我找不到原因,我通过连接创建了其他表,并创建了所有引用的表。我正在使用嵌入式JavaDB为什么我会遇到SQLSyntaxErrorException - 遇到“”?

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

你试图在哪个数据库中创建表? – 2009-11-29 20:01:29

+0

JavaDB,嵌入式,抱歉只做了一个编辑。 – chrisg 2009-11-29 20:02:14

一个明确的问题是,第三个约束子句拼写错误(CONSTARINT ISO CONSTRAINT

+0

感谢您的帮助,就是这样。 – chrisg 2009-11-29 21:04:52

这曾在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) 
); 

你为什么要使用VARCHAR(6)代替日期?对我来说毫无意义。