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/