首页 > 解决方案 > 错误:PostgreSQL 中没有参数 $1

问题描述

我有这种方法可以在数据库中插入一列。它在 MySQL 数据库中运行良好,但是当数据库是 PostgreSQL 时,我在问题标题中得到错误。

这是方法的一小部分

while (rs.next()) {
    String tableName = rs.getString(3);
    if (tableName.endsWith(this.getSuffix())) {
        tablesFound = true;
        if (!checkColumnsExists(connection, tableName, this.getColumnName(), databaseType)) {
            PreparedStatement s = connection.prepareStatement(getQuery(tableName));
            System.out.println("QUERY:"+getQuery(tableName));
            if (this.defaultValue != null) {
                System.out.println("DEFAULT VALUE: "+this.defaultValue);
                s.setString(1, this.defaultValue);
            }
            s.executeUpdate();
            logger.info("Column " + this.getColumnName() + " added to table " + tableName);
            columnsAdded = true;
        }
    }
}

当我打印查询时,这就是结果

QUERY:ALTER TABLE test2_transactions ADD COLUMN NEW_COLUMN_SUFFIX varchar(250) NOT NULL DEFAULT ?

我做错了什么,我这样做只发生在 Postgre 中?

标签: javasqlpostgresql

解决方案


推荐阅读