Mysql
從表中獲取 id(主鍵),其中 id 在表中不可用的範圍內
我已經
table
命名了Student
。它的主鍵student_id
是auto increment
andnot null
。現在
Student
包含大約 5000 條記錄。從大學畢業後,我們還需要從
Student
相關的子表中刪除特定的學生記錄。它運作良好。
我需要得到那些不在
student_id
範圍內的數字。例如。
我有 5000 條記錄。所以假設範圍是1-5000。在
Student
表中,可能有帶有主鍵的數據:
student_id
:1 2 4 5 6 7 9 12 15 等…
所以我想要刪除的 id,比如:3、8、10、11、13、14 等……並且需要在一些文本文件中得到這個結果。
最後我有兩個問題:
- 需要查詢以獲取那些已刪除的 ID
- 我可以在觸發查詢後將結果導出到某個文件中嗎?
SELECT n FROM ( SELECT 1000*n1+100*n2+10*n3+n4+1 n FROM ( SELECT 0 n1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) n1, ( SELECT 0 n2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) n2, ( SELECT 0 n3 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) n3, ( SELECT 0 n4 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) n4 HAVING n < ( SELECT MAX(student_id) FROM Student ) ) numbers LEFT JOIN Student ON student_id = n WHERE student_id IS NULL