在使用node.js和sequelize访问MSSQL时,如何定义一个NVARCHAR(MAX)类型的字段?
在使用node.js和sequelize访问MSSQL时,如何定义一个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)
针对MYSQL: DataTypes.STRING(65535)
Postgres支持TEXT和VARCHAR的长度均可达到1G。
只需使用Sequelize.STRING('MAX')
作为类型
错误:在“MAX”附近有语法错误
(“sequelize”:“4.41.1”) - Skyrocker