mysql給id設置默認值為UUID的實現(xiàn)方法
由于mysql并不支持默認值為函數(shù)類型,給id設值有兩種方式:(1)通過后臺在執(zhí)行插入語句之前,給id設置為UUID (2)在數(shù)據(jù)庫中通過觸發(fā)器給id設置默認值為UUID。第(1)方式比較簡單,這里就不多說了,主要講講通過觸發(fā)器來實現(xiàn)的過程。
1.怎樣創(chuàng)建觸發(fā)器
create trigger 觸發(fā)器的名稱 觸發(fā)時機 觸發(fā)事件 on 要建立觸發(fā)器的表名 for each ROW BEGIN 觸發(fā)器要實現(xiàn)的邏輯 END
(1)觸發(fā)時機,表示在事件觸發(fā)前執(zhí)行還是觸發(fā)后執(zhí)行,所以有兩個可選值,before和after
(2)觸發(fā)事件,也就是說,什么情況下,這個觸發(fā)器才會執(zhí)行,可以是在插入數(shù)據(jù)的時候insert,或者是在更新數(shù)據(jù)的時候update,或者是在刪除數(shù)據(jù)的時候delete,一共是3種觸發(fā)時機
2.通過觸發(fā)器給id設置默認值為UUID
create trigger id_trigger before insert on t_student_course for each ROW BEGIN SET new.ID=REPLACE(UUID(),'-',''); END
簡單解釋一下:
(1)id_trigger就是觸發(fā)器的名字
(2)before就是觸發(fā)時機,表示每次插入新數(shù)據(jù)之前執(zhí)行觸發(fā)器
(3)insert就是觸發(fā)事件,表示插入數(shù)據(jù)的時候觸發(fā)
(4)t_student_course就是要建立觸發(fā)器的表名
(5)SET new.ID=REPLACE(UUID(),'-','');就是觸發(fā)器實現(xiàn)的邏輯功能,也就是給id設置默認值為UUID,這里的new,代表即將插入的數(shù)據(jù)。這里其實可以寫一些判斷,什么情況下執(zhí)行什么之類的。
3.效果
可以看到,在表t_student_course中,已經(jīng)建立了觸發(fā)器,下面新增一條記錄測試一下:
我測試是可以的,有興趣的可以自己測試一下。
到此這篇關于mysql給id設置默認值為UUID的實現(xiàn)方法的文章就介紹到這了,更多相關mysql id設置默認值為UUID內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu20下MySQL?8.0.28?安裝卸載方法圖文教程
這篇文章主要為大家詳細介紹了Ubuntu20下MySQL?8.0.28?安裝卸載方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04