代码之家  ›  专栏  ›  技术社区  ›  Merc

从其信息可靠地生成完整的字段生成字符串_架构.列定义

  •  0
  • Merc  · 技术社区  · 4 年前

    我有以下代码:

    const columns = await this.connection.queryP(`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '${this.table}'`)
    

    我需要从列数据开始生成列定义。 SHOW CREATE TABLE ... 并解析结果。然而,这不是我想要的

    每行有以下键:

    TABLE_CATALOG
    TABLE_SCHEMA
    TABLE_NAME
    COLUMN_NAME
    ORDINAL_POSITION
    COLUMN_DEFAULT
    IS_NULLABLE
    DATA_TYPE
    CHARACTER_MAXIMUM_LENGTH
    CHARACTER_OCTET_LENGTH
    NUMERIC_PRECISION
    NUMERIC_SCALE
    DATETIME_PRECISION
    CHARACTER_SET_NAME
    COLLATION_NAME
    COLUMN_TYPE
    COLUMN_KEY
    EXTRA
    PRIVILEGES
    COLUMN_COMMENT
    GENERATION_EXPRESSION
    

    目前,我正在做一些简单的事情:

        const def = `${pkc.COLUMN_NAME} ${pkc.COLUMN_TYPE} ${pkc.IS_NULLABLE === 'YES' ? 'NULL' : 'NOT NULL'} ${typeof pkc.COLUMN_DEFAULT !== 'undefined' && pkc.COLUMN_KEY !== 'PRI' ? 'DEFAULT ' + pkc.COLUMN_DEFAULT : ''} ${pkc.EXTRA === 'auto_increment' ? 'AUTO_INCREMENT' : ''`
    

    我也很确定很多字段是“只读”的,也就是说,只是给定定义的“结果”。

    有没有办法 可靠地

    0 回复  |  直到 4 年前