gpt4 book ai didi

java - 如何从元数据中了解列是已签名还是未签名?

转载 作者:搜寻专家 更新时间:2023-10-30 23:42:54 24 4
gpt4 key购买 nike

我正在获取数据库模式的元数据。我需要查明列是无符号数据类型还是有符号数据类型。我如何从获取元数据的结果集中找到它。哪一栏会给我相关信息?我的问题是如何从 java 代码中获取该列是已签名还是未签名?提供此信息的列标签是什么?

最佳答案

更新
从 java 结果集中,您可以获得该列是已签名还是未签名。以下面的代码为例:

ResultSet res=stmt.executeQuery("select * from tableName where 1<0");//just making sure no row is retrieved as we dont need any here..
ResultSetMetaData rsmd=res.getMetaData();
boolean isColumnOneSigned= rsmd.isSigned(1);

isSigned(int columnNumber):指示指定列中的值是否为有符号数。您可以找到有关 ResultSetMetaData 的更多信息 here .这是非常有用的类(class)。

在数据库级别做同样的事情:-
对于 MySQL,属性存储在 INFORMATION_SCHEMA.COLUMNS 中的 COLUMN_TYPE 中。

mysql> show columns from ttypes;
+---------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------------------+------+-----+---------+-------+
| cid | int(10) unsigned | YES | | NULL | |
+---------------+----------------------+------+-----+---------+-------+

1 row in set (0.00 sec)

你必须解析出 Type 的内容并在其中找到 unsigned 或 not unsigned 它不会为 signed 列放入任何内容。你可以像

这样选择查询
select COLUMN_NAME,COLUMN_TYPE from information_schema.COLUMNS where TABLE_NAME='ttypes' and COLUMN_TYPE LIKE '%unsigned%' 

关于java - 如何从元数据中了解列是已签名还是未签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com