[英]MySQL if exists update values else insert
我正在創建一個存儲學生出勤率的應用程序。
我正在創建將存儲此出勤率的數據庫,並且卡在mySQL查詢中。
我希望查詢搜索“講座名稱”和“ user_id”(來自其他數據庫的外鍵),如果存在,則增加學生參加講座的人數(出席人數++和總數++)
到目前為止,我有這個:
INSERT INTO `attendance`(`attendance_id`, `module_code`, `lecture_name`,
`attended`, `total`, `user_id`) VALUES ("null","test","TEST",1,1,1)
ON DUPLICATE KEY UPDATE
attended = attended+1,total = total+1
這將插入一個新行,但是對於ON DUPLICATE,無法傳遞主鍵來檢查“重復項”
我想知道在MySQL中是否有除ON DUPLICATE KEY之外的另一種方法,或者是否有人可以幫助我。
這是數據庫的屏幕截圖。 例如,請參見“運籌學”是在應增加價值時創建的。 這是因為我無法將主鍵添加到SQL查詢中。
謝謝您的幫助。
在雙引號中使用null
令人不安。 因此,我認為您應該將查詢編寫為:
INSERT INTO `attendance`(`module_code`, `lecture_name`, `attended`, `total`, `user_id`)
VALUES ('test', 'TEST', 1, 1, 1)
ON DUPLICATE KEY UPDATE attended = attended + 1, total = total + 1 ;
為此,您似乎想要在(lecture_name, user_id)
上具有唯一索引。
您的數據模型似乎確實可疑,因為該表在多行上重復了lecture_name
。 在我看來,您想要一個lectures
表,並在該表中使用lecture_id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.