数据类型
你在模型中定义的每一列都必须具有数据类型. Sequelize 提供很多内置数据类型. 要访问内置数据类型,必须导入 DataTypes:
const { DataTypes } = require("sequelize"); // 导入内置**数据类型**
1
字符串
1 2 3 4 5 6 | DataTypes.STRING // VARCHAR(255) DataTypes.STRING(1234) // VARCHAR(1234) DataTypes.STRING.BINARY // VARCHAR BINARY DataTypes.TEXT // TEXT DataTypes.TEXT( 'tiny' ) // TINYTEXT DataTypes.CITEXT // CITEXT 仅 PostgreSQL 和 SQLite. |
布尔
1 | DataTypes.BOOLEAN // TINYINT(1) |
数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | DataTypes.INTEGER // INTEGER DataTypes.BIGINT // BIGINT DataTypes.BIGINT(11) // BIGINT(11) DataTypes.FLOAT // FLOAT DataTypes.FLOAT(11) // FLOAT(11) DataTypes.FLOAT(11, 10) // FLOAT(11,10) DataTypes.REAL // REAL 仅 PostgreSQL. DataTypes.REAL(11) // REAL(11) 仅 PostgreSQL. DataTypes.REAL(11, 12) // REAL(11,12) 仅 PostgreSQL. DataTypes.DOUBLE // DOUBLE DataTypes.DOUBLE(11) // DOUBLE(11) DataTypes.DOUBLE(11, 10) // DOUBLE(11,10) DataTypes.DECIMAL // DECIMAL DataTypes.DECIMAL(10, 2) // DECIMAL(10,2) 无符号和零填充整数 - 仅限于MySQL/MariaDB 在 MySQL 和 MariaDB 中,可以将数据类型INTEGER, BIGINT, FLOAT 和 DOUBLE 设置为无符号或零填充(或两者),如下所示: DataTypes.INTEGER.UNSIGNED DataTypes.INTEGER.ZEROFILL DataTypes.INTEGER.UNSIGNED.ZEROFILL // 你还可以指定大小,即INTEGER(10)而不是简单的INTEGER // 同样适用于 BIGINT, FLOAT 和 DOUBLE |
日期
1 2 | DataTypes.DATE // DATETIME 适用于 mysql / sqlite, 带时区的TIMESTAMP 适用于 postgres DataTypes.DATE(6) // DATETIME(6) 适用于 mysql 5.6.4+. 支持6位精度的 |
小数秒
1 | DataTypes.DATEONLY // 不带时间的 DATE |
UUID
对于 UUID,使用 DataTypes.UUID. 对于 PostgreSQL 和 SQLite,它会是 UUID 数据类型;对于 MySQL,它则变成CHAR(36). Sequelize 可以自动为这些字段生成 UUID,只需使用 Sequelize.UUIDV1 或 Sequelize.UUIDV4 作为默认值即可:
1 2 3 4 | { type: DataTypes.UUID, defaultValue: Sequelize.UUIDV4 // 或 Sequelize.UUIDV1 } |
数据类型对照表
Model 的数据类型对应MySQL中的数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Sequelize.STRING // VARCHAR(255) 类型:字符串 最大值: 65535个字符 Sequelize.STRING(1234) // VARCHAR(1234) 类型:变长 最大值: 65535个字符 Sequelize.TEXT // TEXT 类型:字符串 最大值:65535个字符 Sequelize.TEXT( 'tiny' ) // TINYTEXT 类型:字符串 最大值:255个字符 Sequelize.INTEGER // INTEGER 类型:整型 最大值:范围(-2147483648~2147483647) Sequelize.BIGINT // BIGINT 类型:整型 最大值:范围(+-9.22*10的18次方) Sequelize.BIGINT(11) // BIGINT(11) 类型:整型 最大值:范围(+-9.22*10的18次方) Sequelize.FLOAT // FLOAT 类型:单精度浮点型 8位精度(4字节) Sequelize.FLOAT(11) // FLOAT(11) 类型:单精度浮点型 8位精度(4字节) Sequelize.FLOAT(11, 12) // FLOAT(11,12) 类型:精度浮点型 8位精度(4字节) m总个数,d小数位 Sequelize.DOUBLE // DOUBLE 类型:双精度浮点型 16位精度(8字节) Sequelize.DOUBLE(11) // DOUBLE(11) 类型:双精度浮点型 16位精度(8字节) Sequelize.DOUBLE(11, 12) // DOUBLE(11,12) 类型:双精度浮点型 16位精度(8字节) m总个数,d小数位 Sequelize.DECIMAL // DECIMAL 类型:定点数型 Sequelize.DECIMAL(10, 2) // DECIMAL(10,2) 类型:定点数型 参数m<65 是总个数,d<30且 d<m 是小数位 Sequelize.DATE // DATETIME 类型:日期时间类型 范例:'2009-05-12 02:31:44' Sequelize.DATE(6) // DATETIME(6) Sequelize.DATEONLY // DATE without time. Sequelize.BOOLEAN // TINYINT(1) 类型:整型 范围(-128~127) Sequelize.ENUM( 'value 1' , 'value 2' ) // ENUM 类型:枚举 Sequelize.BLOB // BLOB 类型:二进制数据 Sequelize.BLOB( 'tiny' ) // TINYBLOB 类型:二进制数据 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗