2 york dongli York_dongli 于 2018.01.14 17:51 提问

nodejs中sequelize的create方法默认执行语句中的id,如何去掉 5C

module.exports=db.define('dnt_topics',{
tid:{
type:Sequelize.INTEGER,
field:'tid',
primarykey:true,
autoIncrement:false,

    },
            创建的model中有tid主键,但是在查询时,会默认被加上一个id的是怎么回事?

            从命令行的调试信息中看到自动加了一列(id),但是实际的数据库中是不存在id这一列的。

2个回答

devmiao
devmiao   Ds   Rxr 2018.01.14 23:06
yujiaao
yujiaao   2018.01.15 13:56

主键定义 Primary keys
Sequelize 默认表有一个为id 主键属性.

如想定义自己的主键也很简单:

 sequelize.define('collection', {
  uid: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true // 对postgres来说会自动转为 SERIAL 
  }
});

sequelize.define('collection', {
  uuid: {
    type: Sequelize.UUID,
    primaryKey: true
  }
});

如果您的模型里根本就没有主键的话, 也可能用 Model.removeAttribute('id') 来去掉!

参考官方文档 :

http://docs.sequelizejs.com/manual/advanced/legacy.html#primary-keys

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!