4

我正在执行以下操作:

private void createTable() {
    try {       
        PreparedStatement psCreateTable = con.prepareStatement("CREATE TABLE     COMPANIES(" +
                "name VARCHAR(50), " +
                "location VARCHAR(50), " +
                "address VARCHAR(50), " +
                "website VARCHAR(50), " +
                "pit VARCHAR(50), " +
                "asset_class VARCHAR(50), " +
                "telephone INTEGER, " +
                "shares INTEGER, " +
                "value DOUBLE(,2) UNSIGNED)");
        psCreateTable.execute();
    } catch (SQLException e) {
        System.out.println("already exists");
        e.printStackTrace();
        ; //bestaat al
    }
}

我收到以下错误:java.sql.SQLSyntaxErrorException:语法错误:在第 1 行第 195 列遇到“(”。

不太确定现在该做什么,因为 SQL 查询对我来说似乎有效并重新检查了它。

4

3 回答 3

1

(,2)在 double 数据类型中删除。

CREATE Table Companies
(
    ....,
    value DOUBLE UNSIGNED
)

见示范

于 2012-10-24T01:41:50.827 回答
0

您的 SQL 查询有错误:"value DOUBLE(,2) UNSIGNED)");

将您的 PreparedStatement 更改为以下内容:

PreparedStatement psCreateTable = con.prepareStatement("CREATE TABLE COMPANIES(" +
                "name VARCHAR(50), " +
                "location VARCHAR(50), " +
                "address VARCHAR(50), " +
                "website VARCHAR(50), " +
                "pit VARCHAR(50), " +
                "asset_class VARCHAR(50), " +
                "telephone INTEGER, " +
                "shares INTEGER, " +
                "value DOUBLE UNSIGNED)");
于 2012-10-24T01:41:31.573 回答
0
DOUBLE(,2)

这是错误的。

你可以试试

DOUBLE(5,2)
于 2012-10-24T01:44:59.887 回答