Java 如何在jdbc的表中包含两个外键?
我在EclipseIDE中使用JDBC,我想在表3中放置两个外键,一个是引用表1中的主键,另一个是引用表2中的主键。当我只为任何引用表1或表2设置一个外键约束时,它可以正常工作,但当我包含两个外键约束时,它会给我sql异常,如下所述: java.sql.SQLSyntaxErrorException:您的sql中有一个错误 句法;检查与MySQL服务器版本对应的手册 有关使用near'外键(Java 如何在jdbc的表中包含两个外键?,java,mysql,jdbc,foreign-keys,Java,Mysql,Jdbc,Foreign Keys,我在EclipseIDE中使用JDBC,我想在表3中放置两个外键,一个是引用表1中的主键,另一个是引用表2中的主键。当我只为任何引用表1或表2设置一个外键约束时,它可以正常工作,但当我包含两个外键约束时,它会给我sql异常,如下所述: java.sql.SQLSyntaxErrorException:您的sql中有一个错误 句法;检查与MySQL服务器版本对应的手册 有关使用near'外键(T2)引用的正确语法 第1行的表2(T2)” 首先,这实际上是一个MySQL问题,与Java/JDBC无关
T2
)引用的正确语法
第1行的表2(T2
)”
首先,这实际上是一个MySQL问题,与Java/JDBC无关。其次,更重要的是,您似乎没有使用正确的语法,这将是
CREATE TABLE TableName (
T1 varchar(50),
T2 varchar(50),
foreign key(T1) references Table1(T1),
foreign key(T2) references Table2(T2)
);
为您的代码格式化后,它将如下所示:
String createString = "CREATE TABLE " + this.tableName + " ( " +
" T1 varchar(50)," +
" T2 varchar(50)," +
" foreign key(T1) references Table1(T1)," +
" foreign key(T2) references Table2(T2));";
您的
CREATE TABLE
语句的项目列表中的每个项目后面都缺少逗号。我建议您提供一个更完整的代码示例。似乎您没有重新分配this.tableName
,也没有在每次迭代之间执行语句。我们可以假设这就是您所做的,但是如果没有更完整的代码,您可能会遇到与从您的描述中推断出的问题不同的问题。是的,这种语法很有效,非常感谢,但在此之前还应该有一个加号(+)。tableName:)当然我接受它,我的意思是,我是否必须单击某些内容才能将您的答案显示为正确答案?
String createString = "CREATE TABLE " + this.tableName + " ( " +
" T1 varchar(50)," +
" T2 varchar(50)," +
" foreign key(T1) references Table1(T1)," +
" foreign key(T2) references Table2(T2));";