SQL查詢獲取自增主鍵

前言

在業務中經常會遇到類似以下模型的表:
表1 STUDENT表(學生表)

stu_id stu_name
1 張三
2 李四

表2 SCHOOL表(學校表)

school_id school_name
1 aa大學
2 bb大學

表3 RELATION表(學校與學生的關係表)

school_id stu_id
1 2
2 1

其中stu_idschool_id均爲自增主鍵,此時要一次性新增數據就比較麻煩,因爲要獲取新增學生和學校的自增id寫入關係表。

@@identity

使用

SELECT @@identity;

可以得到上一次插入記錄時自動產生的ID,在一條INSERT語句執行完畢後,@@identity返回的即爲該INSERT語句的自增id,如果是多條執行完畢後,@@identity返回的爲最後一條數據的自增id。

解決辦法

藉助@@identity可以輕鬆地解決之前的問題,假如現在有一個新學生王五,在CC大學就讀,此時我們就可以利用下列語句來新增數據。

INSERT INTO STUDENT(stu_name) VALUES("王五");
# 使用變量stu1 存儲 新增學生的自增id
SELECT @stu1 := @@identity;

INSERT INTO SCHOOL(school_name) VALUES("CC大學");
# 使用變量 school1 存儲 新增學校的自增ID
SELECT @school1 := @@identity;
#寫入關係表
INSERT INTO RELATION(school_id, stu_id) VALUES(@school1, @stu1);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章