文章詳情頁
關于設計mysql中一個字段自增的函數。
問題描述
我有一個簡單的表,有三個字段,tag_id,user_id,user_tag_id,我想當我插入一條記錄(插入已知的tag_id和user_id)時,user_tag_id要在user_id=當前插入的user_id的條件下的自增1,這個怎么實現,是要寫mysql的自定義函數么?
問題解答
回答1:DELIMITER $$DROP TRIGGER IF EXISTS after_insert_table $$CREATE TRIGGER after_insert_tableAFTER INSERT on tableFOR EACH ROWBEGIN??update table t set t.user_tag_id = t.user_tag_id+1 where t.user_id=new.user_id ;END $$DELIMITER ;回答2:
如果只是新插入的記錄中user_tag_id加1,可以分成兩個sql語句:
首先計算user_id對應user_tag_id的最大值
select max(user_tag_id) + 1 from t1 where user_id = :user_id
然后把上個語句的返回值,放到insert語句中就可以了。
相關文章:
1. docker不顯示端口映射呢?2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?4. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數賦值輸錯誤是什么原因?5. android studio總是在processes running好久6. macos - mac下docker如何設置代理7. MySQL數據庫中文亂碼的原因8. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下9. mysql - 新浪微博中的關注功能是如何設計表結構的?10. angular.js - 關于$apply()
排行榜
