You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取行类型创建的SQL语句?Informix是否存储行类型字段信息?

获取Informix行类型的DDL及字段存储位置

一、获取行类型的创建SQL语句

Informix没有内置的getDDL()函数,但可以通过查询系统表生成行类型的创建语句,步骤如下:

  1. 定位目标行类型的tabid
    行类型在systables系统表中以tabtype='R'标识,执行以下SQL找到目标行类型的唯一标识tabid:
SELECT tabid, tabname FROM systables WHERE tabtype = 'R' AND tabname = 'custom_type';
  1. 查询行类型的字段详情
    用查到的tabid关联syscolumns和systypes表,获取字段名、数据类型等完整信息:
SELECT 
    c.colname, 
    CASE 
        WHEN t.typename IN ('VARCHAR', 'CHAR') THEN CONCAT(t.typename, '(', c.length, ')')
        ELSE t.typename
    END AS full_type
FROM syscolumns c
JOIN systypes t ON c.coltype = t.typeid
WHERE c.tabid = <替换为查到的tabid>
ORDER BY c.colno;
  1. 拼接CREATE ROW TYPE语句
    根据查询结果,拼接出完整的创建语句,示例:
CREATE ROW TYPE custom_type (
    street VARCHAR(20),
    city VARCHAR(20)
);

二、行类型字段信息的存储位置

Informix将行类型的元数据存储在以下系统表中:

  • systables:存储行类型的基本信息,tabtype='R'标记该行是行类型对象,tabid为唯一关联标识。
  • syscolumns:存储行类型的每个字段细节,包括字段名、类型ID、长度等,通过tabid关联到对应的行类型。
  • systypes:存储数据类型的可读名称,通过typeid与syscolumns关联,用于将字段的类型ID转换为具体类型名称。

内容的提问来源于stack exchange,提问作者What

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:42:16