java - 如何使用 JDBC 获取 DEFAULT NULL?

标签 java mysql jdbc

public List<String> getColumnDefaultValues(Connection conn,String tableName) throws SQLException{

    List<String> colDefVal = new ArrayList<>();

    ResultSet rsColumns = null;
    DatabaseMetaData meta = conn.getMetaData();
    rsColumns = meta.getColumns(null, null, tableName, null);

    while (rsColumns.next()) {
        colDefVal.add(rsColumns.getString("COLUMN_DEF"));
    }

    return colDefVal;
}

我正在使用 JDBC 连接到 MySQL。以下函数返回一个列表,其中包含指定表中所有列的默认值。它返回正确的默认值,例如“abc”。但是对于这两种情况它都返回 null:如果默认值设置为 NULL 或根本没有在列上设置默认值。
如何区分具有默认 NULL 约束的列和没有默认约束的列?

最佳答案

JDBC 无法为您提供数据库本身不可用的任何信息。

根据这个answer Mysql 不区分这些列定义:

columnname type
columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL

关于java - 如何使用 JDBC 获取 DEFAULT NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139701/

相关文章:

java - 如何在 Eclipse View 中显示网页

用于读取中间记录的 SQL

java - 当我关闭preparedStatement时结果集为空

java - 具有多个变量的Scala for循环

Java:为什么在按钮上绘制背景图像?

java - Log4j:每个请求一个日志文件

java - 调试 hibernate 配置的工具

c# - MySQL 连接器附加枚举值比实际值小一

java - 数据库文件未创建?

java - 在 SWING 框架中显示 MySQL 表