美文网首页sequelize
Sequelize | 4. 数据 - 参数

Sequelize | 4. 数据 - 参数

作者: ShadowFieldEric | 来源:发表于2021-01-12 14:15 被阅读0次

参数

主键

{ primaryKey: true }

唯一键

{ unique: true } 
{ unique: 'compositeIndex' }

自增

{ autoIncrement: true }

允许为空

{ allowNull: true }

默认值

{ defaultValue: true }
{ defaultValue: DataTypes.NOW }

自定义字段名称

{ field: 'field_with_underscores' }

注释

{ comment: '字段注释' }

属性/外键

personId: {
  type: Sequelize.INTEGER,
  references: 'persons',
  referencesKey: 'id'
}
references: {
  // 这是对另一个模型的参考
  model: Bar,
  // 这是引用模型的列名
  key: 'id',

  // 使用 PostgreSQL,可以通过 Deferrable 类型声明何时检查外键约束.
  deferrable: Deferrable.INITIALLY_IMMEDIATE
  // 参数:
  // - `Deferrable.INITIALLY_IMMEDIATE` - 立即检查外键约束
  // - `Deferrable.INITIALLY_DEFERRED` - 将所有外键约束检查推迟到事务结束
  // - `Deferrable.NOT` - 完全不推迟检查(默认) - 这将不允许你动态更改事务中的规则
}

用法参考

const { Model, DataTypes, Deferrable } = require("sequelize");

class Foo extends Model {}
Foo.init({
  // 实例化将自动将 flag 设置为 true (如果未设置)
  flag: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true },

  // 日期的默认值 => 当前时间
  myDate: { type: DataTypes.DATE, defaultValue: DataTypes.NOW },

  // 将 allowNull 设置为 false 将为该列添加 NOT NULL,
  // 这意味着如果该列为 null,则在执行查询时将从数据库引发错误.
  // 如果要在查询数据库之前检查值是否不为 null,请查看下面的验证部分.
  title: { type: DataTypes.STRING, allowNull: false },

  // 创建两个具有相同值的对象将引发错误.
  // unique 属性可以是布尔值或字符串.
  // 如果为多个列提供相同的字符串,则它们将形成一个复合唯一键.
  uniqueOne: { type: DataTypes.STRING,  unique: 'compositeIndex' },
  uniqueTwo: { type: DataTypes.INTEGER, unique: 'compositeIndex' },

  // unique 属性是创建唯一约束的简写.
  someUnique: { type: DataTypes.STRING, unique: true },

  // 继续阅读有关主键的更多信息
  identifier: { type: DataTypes.STRING, primaryKey: true },

  // autoIncrement 可用于创建 auto_incrementing 整数列
  incrementMe: { type: DataTypes.INTEGER, autoIncrement: true },

  // 你可以通过 'field' 属性指定自定义列名称:
  fieldWithUnderscores: { type: DataTypes.STRING, field: 'field_with_underscores' },

  // 可以创建外键:
  bar_id: {
    type: DataTypes.INTEGER,

    references: {
      // 这是对另一个模型的参考
      model: Bar,

      // 这是引用模型的列名
      key: 'id',

      // 使用 PostgreSQL,可以通过 Deferrable 类型声明何时检查外键约束.
      deferrable: Deferrable.INITIALLY_IMMEDIATE
      // 参数:
      // - `Deferrable.INITIALLY_IMMEDIATE` - 立即检查外键约束
      // - `Deferrable.INITIALLY_DEFERRED` - 将所有外键约束检查推迟到事务结束
      // - `Deferrable.NOT` - 完全不推迟检查(默认) - 这将不允许你动态更改事务中的规则
    }
  },

  // 注释只能添加到 MySQL,MariaDB,PostgreSQL 和 MSSQL 的列中
  commentMe: {
    type: DataTypes.INTEGER,
    comment: '这是带有注释的列'
  }
}, {
  sequelize,
  modelName: 'foo',

  // 在上面的属性中使用 `unique: true` 与在模型的参数中创建索引完全相同:
  indexes: [{ unique: true, fields: ['someUnique'] }]
});

相关文章

网友评论

    本文标题:Sequelize | 4. 数据 - 参数

    本文链接:https://www.haomeiwen.com/subject/eebroktx.html