Skip to content

dataTypes - 字段类型配置 ​

定义此数据库支持的所有支持的字段类型。

这里定义的字段类型,需要将当前数据库支持的字段类型描述清楚,并告诉 SuccApp 不同的字段在 SuccApp 中是什么数据类型,当跨库复制数据时,系统也许兼容识别javaJDBC的字段类型定义,这样在跨库迁移数据时能更准确的还原字段数据类型。

json
	"dataTypes": {
        "TINYINT": {
			"type": "...",
			"dataType": "...",
            "javaTypes": ["..."],
			"matchLen": "...",
			"storageBytes": "...",
            "preffered": true|false,
            "storeCharacter": true|false
		}
	}

配置项 ​

type ​

定义数据库的字段类型,一般为数据库实际支持的数据类型。

  1. 字段类型可以是带有参数的字符串,如VARCHAR(?)、VARCHAR(?) BINARY、DECIMAL(?,?)。
  2. 数据库的字段类型最好参考官方文档进行配置,如MySql支持的数据类型。

dataType ​

定义该字段类型在 SuccApp 中是什么数据类型,通常用字母表示。

数据类型如下所示:

  • C:字符型
  • N:浮点型
  • I:整型
  • D:日期型
  • T:时间型
  • P:时间戳型
  • M:Clob类型
  • X:Blob类型
  • J:Json类型
  • U:其他类型

javaTypes ​

定义java JDBC规范中的数据类型。

通常要与数据库实际字段类型尽量匹配,可以定义多个,用,分隔。当其他数据库迁移数据到此库时,会根据这里的数据类型在当前数据库新建字段。

数据类型如下所示:

  • 整型:TINYINT、SMALLINT、INTEGER、BIGINT
  • 浮点型:FLOAT、REAL、DOUBLE、DECIMAL、NUMERIC
  • 字符型:BIT、NUMERIC、CHAR、VARCHAR、NCHAR、NVARCHAR、BOOLEAN
  • 日期型:DATE
  • 时间型:TIME、TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE
  • 时间戳型:TIMESTAMP
  • Clob类型:CLOB、NCLOB、LONGVARCHAR、LONGNVARCHAR
  • Blob类型:BINARY、VARBINARY、LONGVARBINARY、BLOB
  • Json类型:SQLXML
  • 其他类型:NULL、OTHER、JAVA_OBJECT、DISTINCT、STRUCT、ARRAY、REF、DATALINK、ROWID、REF_CURSOR

matchLen ​

定义整型字段的长度匹配范围,当整数长度与字段类型中matchLen定义的范围相匹配时,会选择此字段类型创建字段,此属性仅对整型字段有效。

示例:

json
	"TINYINT": {
		"type": "TINYINT",
		"dataType": "I",
		"matchLen": "1~2",
		"storageBytes": 1,
		"javaTypes": ["TINYINT"]
	}

提示

用户修改整型字段长度后,若修改的长度超过了原来字段类型的最大长度,会重新根据matchLen定义的范围匹配合适的字段类型。

storageBytes ​

定义字段类型实际存储的字节数,一般为数据库字段类型的字节数。

preffered ​

数据库创建字段时是否优先选择创建此类型的字段,默认为false。

数据库在创建字段时,会优先考虑定义了preffered=true的字段。对于整型字段,若定义了matchLen属性,先根据matchLen属性进行匹配,匹配不到就会使用定义了preffered=true的字段类型。

storeCharacter ​

说明此字段类型是否为字符存储,true表示字符存储,false表示byte存储,此属性对字符型字段有效。

提示

SuccApp 通常会优先使用字符存储的字段,在进行跨库迁移时,从字符存储的字段迁移到目标库时也尽量使用字符存储的字段。

alterTypes ​

定义当前字段类型可以修改为哪些其他数据类型,默认为空。当此属性为空或者未定义时,修改字段类型遵循以下规则

  1. 当表中存在数据时,blob、clob的字段类型总是不能修改为其他类型,其他类型也不能修改为blob或clob类型。
  2. 一般默认除blob、clob字段以外的字段类型可以互相修改。
  3. 对于不能修改的字段类型,若确实需要修改,系统将新建一个字段并尽量迁移老字段的数据过去。
微信公众号微信公众号:山川软件