Типы колонок
В be5 определены типы колонок таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе com.beanexplorer.enterprise.metadata.model.SqlColumnType.
У типа всегда есть строковое представление. Имеются следующие типы:
KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).
Текстовые:
CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10).
VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15).
TEXT — большое текстовое поле (не меньше 4000 символов).
BIGTEXT — очень большое текстовое поле (TODO: уточнить минимальную длину).
Двоичные:
BLOB — бинарные данные (TODO: уточнить минимальную длину).
MEDIUMBLOB — бинарные данные (TODO: уточнить минимальную длину).
Численные:
INT — целое знаковое число (минимум 32-битное).
INT UNSIGNED — целое беззнаковое число (минимум 32-битное). Поддерживается не всеми движками.
BIGINT — целое знаковое число (минимум 64-битное).
BIGINT UNSIGNED — целое беззнаковое число (минимум 64-битное). Поддерживается не всеми движками.
SMALLINT — целое знаковое число (минимум 16-битное).
DECIMAL — дробное число указанной длины с указанной точностью (количество десятичных знаков). Например DECIMAL(10,2).
CURRENCY — валюта. Сейчас совпадает с DECIMAL(18,2).
Дата и время:
DATE — дата.
DATETIME — дата и время.
TIMESTAMP — дата и время. Совпадает с DATETIME во всех движках кроме MySQL.
Перечислимые:
ENUM — перечисление допустимых значений. Например ENUM(on,off,pending)
BOOL — допустимо два значения — „no“ и „yes“ (совпадает с ENUM(no,yes))
Сопоставление типов колонок
Тип be5 |
MySQL |
PostgreSQL |
DB2 |
MS SQL 2008 |
Oracle |
|---|---|---|---|---|---|
BLOB |
MEDIUMBLOB |
BYTEA |
BLOB(4M) |
IMAGE |
BLOB |
MEDIUMBLOB |
MEDIUMBLOB |
BYTEA |
BLOB(16M) |
IMAGE |
MEDIUMBLOB |
TEXT |
TEXT |
TEXT |
CLOB(64K) |
VARCHAR(MAX) |
VARCHAR2(4000 CHAR) |
BIGTEXT |
TEXT |
TEXT |
CLOB(128K) |
VARCHAR(MAX) |
CLOB |
VARCHAR |
VARCHAR (если размер >255, то TEXT) |
VARCHAR |
VARCHAR |
VARCHAR |
VARCHAR2 |
CHAR |
CHAR |
CHAR |
CHAR |
CHAR |
CHAR |
KEYTYPE |
BIGINT UNSIGNED |
BIGINT |
BIGINT |
BIGINT |
VARCHAR2(15 CHAR) |
INT |
INT |
INT |
INT |
INT |
NUMBER(10) |
INT UNSIGNED |
INT UNSIGNED |
INT |
INT |
INT |
NUMBER(10) |
BIGINT |
BIGINT |
BIGINT |
BIGINT |
BIGINT |
NUMBER(20) |
BIGINT UNSIGNED |
BIGINT UNSIGNED |
BIGINT |
BIGINT |
BIGINT |
NUMBER(20) |
SMALLINT |
SMALLINT |
SMALLINT |
SMALLINT |
SMALLINT |
NUMBER(5) |
DECIMAL |
DECIMAL |
DECIMAL |
DECIMAL |
DECIMAL |
NUMBER |
CURRENCY |
DECIMAL(18,2) |
DECIMAL(18,2) |
DECIMAL(18,2) |
DECIMAL(18,2) |
NUMBER(18,2) |
DATE |
DATE |
DATE |
DATE |
DATE |
DATE |
DATETIME |
DATETIME |
TIMESTAMP |
TIMESTAMP |
DATETIME |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP |
DATETIME |
TIMESTAMP |
ENUM |
ENUM |
VARCHAR + CONSTRAINT |
VARCHAR + CONSTRAINT |
VARCHAR + CONSTRAINT |
VARCHAR2 + CONSTRAINT |
BOOL |
ENUM(„no“,“yes“) |
VARCHAR + CONSTRAINT |
VARCHAR + CONSTRAINT |
VARCHAR + CONSTRAINT |
VARCHAR2 + CONSTRAINT |