在JDBC代码中执行sql约束

时间:2014-07-19 17:02:37

标签: java sql sql-server jdbc

因此在使用jdbc创建表之后,我将此代码用于将UserInfoTable和ContactTable以及UserInfoID之间的一对多关系作为外键。

String addConstraint = "alter table ContactTable"+
    "ADD CONSTRAINT FK_ContactTable_UserInfoTable"+
    "FOREIGN KEY(UserInfoID)"+
    "REFERENCES UserInfoTable (UserInfoID)"+
    "ON UPDATE CASCADE"+
    "ON DELETE CASCADE";

但是当我执行此操作时,

con.prepareStatement(addConstraint).executeUpdate();

我正在

java.sql.SQLException:关键字'CONSTRAINT'附近的语法不正确。

我真的很困惑。我在sql server中多次手动编码这个查询,我认为我的语法是正确的,因为它总是成功执行,为什么不在java代码执行时呢?

1 个答案:

答案 0 :(得分:3)

您正在连接字符串,但不同的细分受众群没有空格,这可能导致关键字与您的数据捆绑在一起,从而产生无效的关键字。

这很简单,但这可能就是你所需要的:

String addConstraint = "alter table ContactTable "+
"ADD CONSTRAINT FK_ContactTable_UserInfoTable "+
"FOREIGN KEY(UserInfoID) "+
"REFERENCES UserInfoTable (UserInfoID) "+
"ON UPDATE CASCADE "+
"ON DELETE CASCADE";