【问题标题】:How to use varchar in node.js sequelize?如何在 node.js sequelize 中使用 varchar?
【发布时间】:2019-05-23 04:17:59
【问题描述】:

我在Node.js 中使用Sequelize 4.42.0,我想在SQL Server 2014 中创建一些字段,类型为varchar(100)

根据文档,DataTypes.STRING 应该映射到 Varchar。

我正在使用以下代码:

const sequlize = new Sequelize("Test", "komeil", "1234", {
host: "localhost",
dialect: "mssql",
operatorsAliases: false,
define: {
    timestamps: false
}
,
logging: false
});
const User2 = sequlize.define("User2", {
Id: {
    type: Sequlize.STRING(100),
    primaryKey: true,
    allowNull: false
}       
}, { freezeTableName: true });

我期待 varchar(100) 字段,但它生成 nvarchar(100)

【问题讨论】:

    标签: javascript node.js sql-server sequelize.js


    【解决方案1】:

    似乎这是文档中的错误:请参阅 https://github.com/sequelize/sequelize/issues/6036

    【讨论】:

      【解决方案2】:
      row_name: {
          type: "varchar(36)",
          allowNull: false
      }
      

      【讨论】:

      • 请在您的答案中添加一些解释,以便其他人可以从中学习
      • 我尝试了这个解决方案并且它有效。因此,如果您使用 Sequlize.STRING(100),则该值与 NVARCHAR 枚举匹配。但如果输入“varchar(100)”,则会被忽略并按原样应用,因此它可以工作。换句话说,您可以使用“dummy”而不是“varchar(100)”,sequelize 会尊重它,但它会在 SQL 服务器上失败。希望这会有所帮助!
      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2017-01-28
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2019-09-28
      相关资源
      最近更新 更多