mysql的定长属性_mysql – SailsJS – 如何在创建记录时指定字符串属性长度而不会出错?...

在使用Sails 0.9.8与MySQL时,遇到了因唯一键过长而产生的错误。Sails默认为string-type属性指定长度255,这导致了数据库键长超限的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在使用Sails 0.9.8与

MySQL配对,并希望做这样的事情

localhost:1337/player/view/

代替

localhost:1337/player/view/

所以我在模型中加入了这样的东西:

'username' : {

type: 'string',

unique: true,

minLength: 4,

maxLength: 32,

required: true

},

但是每当我举起风帆升降机时我都会遇到错误:

{ [Error: ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes] code: 'ER_TOO_LONG_KEY', index: 0 }

因此,在我浏览模块之后,我发现这是因为默认情况下,Sails在数据库中为string-type属性指定了255的长度.给定长度可以用’size’覆盖,但在创建记录时会导致另一个错误.

'username' : {

type: 'string',

unique: true,

minLength: 4,

maxLength: 32,

size: 32,

required: true

},

创建记录时导致的错误:

Error: Unknown rule: size

at Object.match (npm\node_modules\sails\node_modules\waterline\node_modules\anchor\lib\match.js:50:9)

at Anchor.to (\npm\node_modules\sails\node_modules\waterline\node_modules\anchor\index.js:76:45)

at \npm\node_modules\sails\node_modules\waterline\lib\waterline\core\validations.js:137:33

问题是,如何在创建记录时不指定错误的情况下指定字符串列的大小(以便我可以使用唯一键)?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值