[英]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
將表插入(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.