欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    出自:

    問題

    在插入數據時經常存在如下需求:當此記錄不存在就插入,存在則更新而不是插入。

    假如有如下表

    
    MariaDB [learn_sql]> show create table students_sample;
    CREATE TABLE `students_sample` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `STUDENT_ID` char(6) NOT NULL COMMENT '學號',
      `NAME` varchar(16) NOT NULL COMMENT '姓名',
      `TIME_STAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '插入時間',
      PRIMARY KEY (`ID`),
      UNIQUE KEY `students_sample__index` (`STUDENT_ID`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='學生表'     
    

    表共有4列,其中一列設置了索引。

    當前表中存在一條數據,如下所示

    +----+------------+-----------+---------------------+
    | ID | STUDENT_ID | NAME      | TIME_STAMP          |
    +----+------------+-----------+---------------------+
    |  1 | 000001     | 王二狗    | 2021-10-06 12:59:23  |
    +----+------------+-----------+---------------------+
    

    解決方案

    最容易想到的方案就是先檢查此記錄是否存在,存在則更新,不存在就插入。

    但是可能是這個需求太常見了,mysql數據庫本身提供解決方案。使用

    ON KEY 即可。語法如下:

    INSERT INTO students_sample(STUDENT_ID,NAME) VALUE('000002','上官無雪') ON DUPLICATE KEY UPDATE STUDENT_ID= '000002',NAME='牛翠花';
    

    上面的語句當號學生不存在時則使用VALUE里面的值插入一條姓名為上官無雪的記錄,但是當號學生存在時則使用后面的語句更新此記錄。

    所以上面的語句就會插入一條數據,輸出如下:

    +----+------------+--------------+---------------------+
    | ID | STUDENT_ID | NAME         | TIME_STAMP          |
    +----+------------+--------------+---------------------+
    |  1 | 000001     | 王二狗        | 2021-10-06 12:59:23  |
    |  2 | 000002     | 上官無雪      | 2021-10-06 18:54:32  |
    +----+------------+--------------+---------------------+
    

    讓我們使用下面的語句更新一下記錄

    INSERT INTO students_sample(STUDENT_ID,NAME) VALUE('000002','牛翠花') ON DUPLICATE KEY UPDATE STUDENT_ID= '000002',NAME='牛翠花';
    

    輸入如下:

    +----+------------+-----------+---------------------+
    | ID | STUDENT_ID | NAME      | TIME_STAMP          |
    +----+------------+-----------+---------------------+
    |  1 | 000001     | 王二狗    | 2021-10-06 12:59:23 |
    |  2 | 000002     | 牛翠花    | 2021-10-06 19:10:16 |
    +----+------------+-----------+---------------------+
    

    可見mysql檢查表是否存在,條記錄已經被更新了。

    這種方法需要注意一下兩點

    總結

    當你遇到一個未知的問題mysql檢查表是否存在,即使你心中已經有了解決方案,也應該調研一下是否已經存在成熟的方案…百利無一害。

    這個國慶很特殊啊,下了5天雨…

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有