指南 参考 源码

变量

静态公共摘要
public

一个包含常用数据类型的便捷类。

public

Deferrable: {"INITIALLY_DEFERRED": *, "INITIALLY_IMMEDIATE": *, "NOT": *, "SET_DEFERRED": *, "SET_IMMEDIATE": *}

一个与可延迟约束相关的属性集合。

public

一个用于在 MySQL 中使用索引提示进行查询的索引提示枚举。

public

一个由 sequelize.query 使用的查询类型枚举。

public

一个用于在 MSSQL 中使用表提示进行查询的表提示枚举。

public

定义有效 ValidationErrorItem origin 值的枚举

public

一个由 ValidationErrorItem 类内部使用的枚举,它将当前 type 字符串(如传递给 ValidationErrorItem.constructor())映射到我们新的 origin 值。

静态公共

public DataTypes: * source

一个包含常用数据类型的便捷类。这些数据类型在使用 Sequelize.define 定义新模型时使用,例如

sequelize.define('model', {
  column: DataTypes.INTEGER
})

在定义模型时,你可以很容易地将字符串作为类型传递,但通常使用这里定义的类型是有益的。例如,使用 DataTypes.BLOB,意味着该列将作为 Buffer 的实例返回,当它被 sequelize 获取时。

要为数据类型提供长度,可以像调用函数一样调用它:INTEGER(2)

有些数据类型具有特殊的属性,可以访问这些属性来更改数据类型。例如,要获取带零填充的无符号整数,可以执行 DataTypes.INTEGER.UNSIGNED.ZEROFILL。访问属性的顺序无关紧要,因此 DataTypes.INTEGER.ZEROFILL.UNSIGNED 也是可以的。

  • 所有数字类型 (INTEGER, BIGINT, FLOAT, DOUBLE, REAL, DECIMAL) 都公开 UNSIGNEDZEROFILL 属性
  • CHARSTRING 类型公开 BINARY 属性

这里提供的三个值 (NOW, UUIDV1UUIDV4) 是特殊的默认值,不应用于定义类型。相反,它们被用作定义默认值的简写。例如,要获取一个具有默认值的 uuid 字段,该默认值按照 UUID 标准的 v1 生成

sequelize.define('model', {
  uuid: {
    type: DataTypes.UUID,
    defaultValue: DataTypes.UUIDV1,
    primaryKey: true
  }
})

有时你可能想生成符合其他算法的 UUID。这可以通过使用 defaultValue 属性来实现,但是,与其指定提供的 UUID 类型之一,不如从函数返回一个值。

sequelize.define('model', {
  uuid: {
    type: DataTypes.UUID,
    defaultValue: function() {
      return generateMyId()
    },
    primaryKey: true
  }
})

public Deferrable: {"INITIALLY_DEFERRED": *, "INITIALLY_IMMEDIATE": *, "NOT": *, "SET_DEFERRED": *, "SET_IMMEDIATE": *} source

与可延迟约束相关的属性集合。它可以用于使外键约束可延迟以及在事务中设置约束。这仅在 PostgreSQL 中受支持。

外键可以像这样配置。它将创建一个外键,该外键将在数据插入时立即检查约束。

sequelize.define('Model', {
  foreign_id: {
    type: Sequelize.INTEGER,
    references: {
      model: OtherModel,
      key: 'id',
      deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE
    }
  }
});

约束可以在事务中像这样配置。它将在事务启动后触发一个查询,并将约束设置为在事务结束时进行检查。

sequelize.transaction({
  deferrable: Sequelize.Deferrable.SET_DEFERRED
});

属性

名称类型属性描述
INITIALLY_DEFERRED *

在声明约束时使用。默认情况下允许和启用该约束的检查,以便在事务结束时延迟。

INITIALLY_IMMEDIATE *

在声明约束时使用。允许在事务结束时延迟约束的检查。

NOT *

在声明约束时使用。将约束设置为不可延迟。这是 PostgreSQL 中的默认设置,它使在事务中动态延迟约束变得不可能。

SET_DEFERRED *

在声明事务时使用。在提交时延迟该事务中涉及的可延迟检查。

SET_IMMEDIATE *

在声明事务时使用。立即执行该事务中涉及的可延迟检查。

public IndexHints: * source

一个用于在 MySQL 中使用索引提示进行查询的索引提示枚举。

属性

名称类型属性描述
USE *
FORCE *
IGNORE *

public QueryTypes: * source

一个由 sequelize.query 使用的查询类型枚举。

属性

名称类型属性描述
SELECT *
INSERT *
UPDATE *
BULKUPDATE *
BULKDELETE *
DELETE *
UPSERT *
VERSION *
SHOWTABLES *
SHOWINDEXES *
DESCRIBE *
RAW *
FOREIGNKEYS *
SHOWCONSTRAINTS *

参见

public TableHints: * source

一个用于在 MSSQL 中使用表提示进行查询的表提示枚举。

属性

名称类型属性描述
NOLOCK *
READUNCOMMITTED *
UPDLOCK *
REPEATABLEREAD *
SERIALIZABLE *
READCOMMITTED *
TABLOCK *
TABLOCKX *
PAGLOCK *
ROWLOCK *
NOWAIT *
READPAST *
XLOCK *
SNAPSHOT *
NOEXPAND *

public ValidationErrorItemOrigin: * source

定义有效 ValidationErrorItem origin 值的枚举

public ValidationErrorItemType: * source

一个由 ValidationErrorItem 类内部使用的枚举,它将当前 type 字符串(如传递给 ValidationErrorItem.constructor())映射到我们新的 origin 值。