程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL樹立獨一索引完成拔出反復主動更新

MySQL樹立獨一索引完成拔出反復主動更新

編輯:MySQL綜合教程

MySQL樹立獨一索引完成拔出反復主動更新。本站提示廣大學習愛好者:(MySQL樹立獨一索引完成拔出反復主動更新)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL樹立獨一索引完成拔出反復主動更新正文


媒介

在我們往數據庫拔出數據的時刻,須要斷定某個字段能否存在,假如存在則履行更新操作,假如不存在則履行拔出操作,假如每次起首查詢一次斷定能否存在,再履行拔出或許更新操作,就非常不便利。上面給年夜家分享個辦法,便利年夜家完成這一功效,上面來一路看看吧。

ON DUPLICATE KEY UPDATE

這個時刻可以給這個字段(或許幾個字段)樹立獨一索引,同時應用以下 sql 語句停止拔出或更新操作:

INSERT INTO table (id, user_id, token) VALUES (NULL, '2479031', '232') ON DUPLICATE KEY UPDATE user_id = VALUES(user_id), token = VALUES(token), online = VALUES(online)

MySQL 給字段添加獨一索引

添加獨一索引 sql:

ALTER TABLE table_name ADD UNIQUE (column_list)

留意:假如沒有獨一索引,則沒法觸發 ON DUPLICATE KEY 如許的事宜,DUPLICATE 表現反復的意思,如某個字段沒有添加獨一索引,則不以為拔出異樣的值是反復的,所以對弗成反復的字段必需樹立獨一索引。

實例解釋

如一個需求是供給一個接口給 IOS 端,用於上報用戶 id,裝備,在線狀況等信息,接口以 GET 方法傳參,用戶每次翻開或加入 APP 就要求接口。

接口收到要求,將信息記載到數據庫,依據用戶 id 停止斷定,假如存在則更新,不存在就新增。

這個時刻 sql 語句應用下面引見的 on duplicate key update 語句。

INSERT INTO table (id, user_id, token) VALUES (NULL, '2479031', '232') ON DUPLICATE KEY UPDATE user_id = VALUES(user_id), token = VALUES(token), online = VALUES(online)

以這個 sql 為例,個中 user_id 是獨一索引字段,假如 insert 的時刻該 user_id 曾經存在,那末就將觸發更新而不是拔出,此時相當於履行了:

update table set user_id = 2479031 token = 232 where user_id = 2479031

這就是獨一索引和 ON DUPLICATE KEY UPDATE 的用法。

總結

以上就是這篇文章的全體內容,願望能對年夜家的進修或許任務帶來必定的贊助,假如有疑問年夜家可以留言交換。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved