ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

node-sequelize学习笔记二(创建删除表、安全检查表、表列的数据类型)

2021-06-06 21:03:49  阅读:193  来源: 互联网

标签:node 11 STRING true 数据类型 表列 INTEGER DataTypes type


1、创建(sync)、删除表(drop)

sequelize.sync()    //如果有表则跳过
sequelize.sync({ force: true }) - 将创建表,如果表已经存在,则将其首先删除
sequelize.sync({ alter: true }) - 这将检查数据库中表的当前状态(它具有哪些列,它们的数据类型等),然后在表中进行必要的更改以使其与模型匹配.
sequelize.drop(); 删除所有表
sequelize替换为表名则执行单独表

2、安全检查

// 仅当数据库名称以 '_test' 结尾时,它才会运行.sync()
sequelize.sync({ force: true, match: /_test$/ });

3、表列的数据类型

DataTypes.STRING             // VARCHAR(255)
DataTypes.STRING(1234)       // VARCHAR(1234)
DataTypes.STRING.BINARY      // VARCHAR BINARY
DataTypes.TEXT               // TEXT
DataTypes.TEXT('tiny')       // TINYTEXT

DataTypes.BOOLEAN            // TINYINT(1)

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.DOUBLE             // DOUBLE
DataTypes.DOUBLE(11)         // DOUBLE(11)
DataTypes.DOUBLE(11, 10)     // DOUBLE(11,10)

DataTypes.DECIMAL            // DECIMAL
DataTypes.DECIMAL(10, 2)     // DECIMAL(10,2)

DataTypes.INTEGER.UNSIGNED
DataTypes.INTEGER.ZEROFILL
DataTypes.INTEGER.UNSIGNED.ZEROFILL

DataTypes.DATE       // DATETIME 适用于 mysql / sqlite, 带时区的TIMESTAMP 适用于 postgres
DataTypes.DATE(6)    // DATETIME(6) 适用于 mysql 5.6.4+. 支持6位精度的小数秒
DataTypes.DATEONLY   // 不带时间的 DATE

DataTypes.UUID

 4、表列的参数

实例化将自动将 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` - 完全不推迟检查(默认) - 这将不允许你动态更改事务中的规则
  }
},

 

标签:node,11,STRING,true,数据类型,表列,INTEGER,DataTypes,type
来源: https://www.cnblogs.com/anglezjl/p/14856366.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有