新增乙個主鍵自增長 MyBatis 示例 主鍵回填

2021-10-25 13:20:19 字數 1172 閱讀 1676

測試類:com.yjw.demo.primarykeytest

資料庫表的主鍵為自增長列,在寫業務**的時候,經常需要在表中新增一條資料後,能獲得這條資料的主鍵 id,mybatis 提供了實現的方法。

insert into t_student (name, ***, selfcard_no, note)

values (

#,#,#,#

)

通過配置兩個屬性(keyproperty、usegeneratedkeys)獲取表中生成的自增長主鍵。

批量新增資料,也可以採用和上面一樣的方式。

insert into t_student (name, ***, selfcard_no, note)

values (#,

#,#,#)

假設我們取消表 t_student 的 id 自增的規則,我們的要求是:如果表 t_student 沒有記錄,則我們需要設定 id=1,否則我們就取最大 id 加2,來設定新的主鍵。對於一些特殊的要求,mybatis 也提供了對應方法。

select if(max(id) is null, 1, max(id) + 2) as newid from t_student

insert into t_student (id, name, ***, selfcard_no, note)

values (

#,#,

#,#,#)

批量新增資料,也可以採用和上面一樣的方式。

select if(max(id) is null, 1, max(id) + 2) as newid from t_student

insert into t_student (name, ***, selfcard_no, note)

values(#,

#,#,#)

架構筆記 · 語雀​www.yuque.com

MySQL為什麼需要乙個主鍵(自增長)

主鍵自增長 alter table sys manager modify user id integer auto increment 表中每一行都應該有可以唯一標識自己的一列 或一組列 乙個顧客可以使用顧客編號列,而訂單可以使用訂單id,雇員可以使用雇員id 或 雇員社會保險號。主鍵 primar...

Sql Server批量刪除主鍵,新增自增長主鍵

最近遇到乙個問題,乙個資料庫中有很多相近的表,已經有資料了,但是需要把主鍵修改為自動增長的,但是又不想刪除資料,只好先刪掉主鍵,然後再新增主鍵並設定自動增長。因為這幾個表的主鍵名字是相同的,都是 kkkkkk 我想用迴圈來實現,於是寫了個儲存過程,主要使用游標。首先,查詢表名稱,主要通過sysobj...

設定自增主鍵 主鍵,聚集索引,不是乙個東西

練習一 建表時,可不可以不宣告主鍵?1 create table user name varchar 10 engine innodb 2 insert into user values shenjian 3 insert into user values shenjian 畫外音 建表時,不宣告主...