里拉de跳跳糖 2018-01-14 09:51 采纳率: 0%
浏览 7438
已结题

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

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

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

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

2条回答 默认 最新

  • COCO_AS 2018-01-15 05: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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器