亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

mysql自增字段與主鍵問題

mysql添加了一個自增主鍵id,但是在生成的實體類中我不想用id作為默認主鍵,我想用字段userid為主鍵,包括用到的查詢getById等都是用userid進行查詢,需要怎樣設置才行?目前用mybatis-plus generator自動生成的實體如下:

@ApiModelProperty(value?=?"ID")
@TableId(value?=?"ID",?type?=?IdType.AUTO)
private?Integer?id;

@ApiModelProperty(value?=?"用戶ID")
@TableField("UserID")
private?String?UserID;


正在回答

1 回答

不太理解你為什么要這么做,你把@TableId設置到UserID上,主鍵策略設置為

type?=?IdType.INPUT?該類型主鍵表示新增時由你自己插入主鍵
0 回復 有任何疑惑可以回復我~
#1

老猿

你試試,這樣做應該可以實現你說的功能,就相當于欺騙MP,讓MP誤以為UserID是主鍵。但我從來沒見過這么干的,不知道會不會有問題,我本人也不建議你這樣做。
2019-09-22 回復 有任何疑惑可以回復我~
#2

qq_慕瓜5297292 提問者 回復 老猿

因為在mysql數據中添加了自增id,這個自增id沒有實際意義,而自增id必須設置為主鍵,而MP生成的時候會自動把id生成為主鍵,但是實際用于查詢時這個id只是一個自增,沒法用于實際查詢,而實際主鍵應該是UserID,mysql即使設置成雙主鍵,mp也會默認生成一個id為@TableId的主鍵,感覺需要mp生成時能指定userid為主鍵才行
2019-09-23 回復 有任何疑惑可以回復我~
#3

老猿 回復 qq_慕瓜5297292 提問者

如果你把userid在數據庫中指定為主鍵,mp的代碼生成器給你建立實體類時是可以識別出來的。還有自增的字段不是必須為主鍵,mysql一個表中只可以有一個自增字段,數字類型的字段只要設置上唯一索引,就可以設置上自增。
2019-09-23 回復 有任何疑惑可以回復我~
#4

qq_慕瓜5297292 提問者 回復 老猿

是的,謝謝,學習了
2019-09-24 回復 有任何疑惑可以回復我~
#5

老猿 回復 qq_慕瓜5297292 提問者

不客氣,嘿嘿。
2019-09-24 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

mysql自增字段與主鍵問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號