Column 属性定义

    对于不同的数据库系统,数据类型其实是有些差异的。因此xorm中对数据类型有自己的定义,基本的原则是尽量兼容各种数据库的字段类型,具体的字段对应关系可以查看字段类型对应表。对于使用者,一般只要使用自己熟悉的数据库字段定义即可。

    具体的 Tag 规则如下,另 Tag 中的关键字均不区分大小写,但字段名根据不同的数据库是区分大小写:

    • 2.string类型默认映射为varchar(255),如果需要不同的定义,可以在tag中自定义,如:

    • 4.实现了Conversion接口的类型或者结构体,将根据接口的转换方式在类型和数据库记录之间进行相互转换,这个接口的优先级是最高的。

    下表为xorm类型和各个数据库类型的对应表:

    xormmysqlsqlite3postgresremark
    SMALLINTSMALLINTINTEGERSMALLINT
    MEDIUMINTMEDIUMINTINTEGERINTEGER
    INTINTINTEGERINTEGER
    INTEGERINTEGERINTEGERINTEGER
    BIGINTBIGINTINTEGERBIGINT
    CHARCHARTEXTCHAR
    VARCHARVARCHARTEXTVARCHAR
    TINYTEXTTINYTEXTTEXTTEXT
    TEXTTEXTTEXTTEXT
    MEDIUMTEXTMEDIUMTEXTTEXTTEXT
    LONGTEXTLONGTEXTTEXTTEXT
    BINARYBINARYBLOBBYTEA
    VARBINARYVARBINARYBLOBBYTEA
    DATEDATENUMERICDATE
    DATETIMEDATETIMENUMERICTIMESTAMP
    TIMETIMENUMERICTIME
    TIMESTAMPTIMESTAMPNUMERICTIMESTAMP
    TIMESTAMPZTEXTTEXTTIMESTAMP with zonetimestamp with zone info
    REALREALREALREAL
    FLOATFLOATREALREAL
    DOUBLEDOUBLEREALDOUBLE PRECISION
    DECIMALDECIMALNUMERICDECIMAL
    NUMERICNUMERICNUMERICNUMERIC
    TINYBLOBTINYBLOBBLOBBYTEA
    BLOBBLOBBLOBBYTEA
    MEDIUMBLOBMEDIUMBLOBBLOBBYTEA
    LONGBLOBLONGBLOBBLOBBYTEA
    BYTEABLOBBLOBBYTEA
    BOOLTINYINTINTEGERBOOLEAN
    SERIALINTINTEGERSERIALauto increment
    BIGSERIALBIGINTINTEGERBIGSERIALauto increment