使用node.js和sequelize vis-a-vis MSSQL,如何定义NVARCHAR(MAX)字段?
答案 0 :(得分:6)
如果在Sequelize中将数据类型设为TEXT
对于SQL Server数据库,它会自动将该字段转换为NVARCHAR(MAX
。
我在文档中找不到这个
但Sequelize github repository从第79到90行提到了它。
在此处粘贴代码段:
TEXT.prototype.toSql = function toSql() {
// TEXT is deprecated in mssql and it would normally be saved as a non-unicode string.
// Using unicode is just future proof
if (this._length) {
if (this._length.toLowerCase() === 'tiny') { // tiny = 2^8
warn('MSSQL does not support TEXT with the `length` = `tiny` option. `NVARCHAR(256)` will be used instead.');
return 'NVARCHAR(256)';
}
warn('MSSQL does not support TEXT with the `length` option. `NVARCHAR(MAX)` will be used instead.');
}
return 'NVARCHAR(MAX)';
};
正如您所见,SQL Server不支持TEXT字段,因此它会将其转换为NVARCHAR(MAX)
答案 1 :(得分:0)
只需使用Sequelize.STRING('MAX')
作为类型
答案 2 :(得分:0)
对于MYSQL:DataTypes.STRING(65535)
postgres最多支持1G的TEXT和VARCHAR。