簡體   English   中英

與主鍵匹配時更新MySql中的表字段

[英]Update a table field in MySql when a match with primary Key Occurs

我在Mysql數據庫中使用表,這里有一個名為First_Seen and Last_Seen的字段,並且其中一個字段ID被標記為主鍵。

現在假設我的記錄是這樣的

12445555555|1|4444444855|2017-03-09 15:02:55|abc|134|M|SOME_RANDOM_NAME

在這1244555555字段中,將其作為主鍵。

因此,如果我嘗試將此記錄插入數據庫中,則將first_seen和last_seen都正確插入為2017-03-09 15:02:55

但是,每當腳本在10分鍾(例如)之后執行同一命令時(因為id是主鍵),就不會插入具有不同時間的下一條記錄。

12445555555|1|4444444855|2017-03-09 15:12:55|abc|134|M|SOME_RANDOM_NAME

所以我想做的就是代替在數據庫中插入重復的記錄,我想更新last_seen字段,因為它甚至在腳本中執行相同的記錄n次也不會反映在數據庫中。

這是db_insert.py腳本,該腳本從csv文件獲取記錄並提取字段並插入db

time = record[6]
            try:
                cursor = connection.cursor()
        # Trying to create a new record
                sql = "INSERT IGNORE INTO `my_table` (`ID`,`F1`,`F2`,`First_Seen`,`Last_Seen`,`F3`,`F4`,`F5`,`F6`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
                cursor.execute(sql,(id,f1,f2,time,time,f3,f4,f5,f6))
                connection.commit()
            finally:
                connection.rollback()
connection.close()

我想要的是每當重復條目出現與id字段匹配時,我就需要用當前行中的time字段替換時間並將其放在last_seen中。

這是我所期望的。

12445555555|1|4444444855|2017-03-09 15:02:55|2017-03-09 15:12:55abc|134|M|SOME_RANDOM_NAME|something_else

使用ON DUPLICATE KEY UPDATE

將表插入(ID,column1,column2)VALUES(1,'inserted value1','inserted value2')ON DUPLICATE KEY UPDATE column1 =“更新值1”,column2 ='更新值2'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM