# dataTypes - 字段类型配置

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

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

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

# 配置项

# type

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

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

# dataType

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

数据类型如下所示:

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

# javaTypes

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

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

数据类型如下所示:

  • 整型TINYINTSMALLINTINTEGERBIGINT
  • 浮点型FLOATREALDOUBLEDECIMALNUMERIC
  • 字符型BITNUMERICCHARVARCHARNCHARNVARCHARBOOLEAN
  • 日期型DATE
  • 时间型TIMETIME_WITH_TIMEZONETIMESTAMP_WITH_TIMEZONE
  • 时间戳型TIMESTAMP
  • Clob类型CLOBNCLOBLONGVARCHARLONGNVARCHAR
  • Blob类型BINARYVARBINARYLONGVARBINARYBLOB
  • Json类型SQLXML
  • 其他类型NULLOTHERJAVA_OBJECTDISTINCTSTRUCTARRAYREFDATALINKROWIDREF_CURSOR

# matchLen

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

示例:

	"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存储,此属性对字符型字段有效。

提示

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

# alterTypes

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

  1. 当表中存在数据时,blob、clob的字段类型总是不能修改为其他类型,其他类型也不能修改为blob或clob类型。
  2. 一般默认除blob、clob字段以外的字段类型可以互相修改。
  3. 对于不能修改的字段类型,若确实需要修改,系统将新建一个字段并尽量迁移老字段的数据过去。
是否有帮助?
0条评论
评论