我想请求所有的column_name
s,table_name
s和相应的data_type
s。我使用:
SELECT column_name, table_name, data_type FROM INFORMATION_SCHEMA.COLUMNS
但是,
data_type
偶尔返回ARRAY
。从技术上讲,这是正确的,例如,这些是double_precision[]
。是否可以返回
double precision[]
而不是ARRAY
? 最佳答案
数组类型可以由udt_name
请求:
数据类型:数组元素的字符数据类型,如果它是
内置类型,否则由用户定义(在这种情况下,将标识该类型
在udt_name和相关列中)。(Postgres documentation)
demo: db<>fiddle
CREATE TABLE test_table (
id int,
somearrays text[],
somearrays_i int[]
);
SELECT
data_type,
udt_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'test_table'
结果:
data_type udt_name
integer int4
ARRAY _text
ARRAY _int4
关于sql - SQL INFORMATION_SCHEMA.COLUMNS返回不完整的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52643297/