为什么我会遇到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)");
}
答
这曾在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)代替日期?对我来说毫无意义。
你试图在哪个数据库中创建表? – 2009-11-29 20:01:29
JavaDB,嵌入式,抱歉只做了一个编辑。 – chrisg 2009-11-29 20:02:14