mysql数据插入覆盖和时间戳的问题及解决


Posted in MySQL onMarch 25, 2022

数据插入覆盖和时间戳问题

1.数据插入问题

当我们insert数据时,插入datetime类型,此类型的字段,存储数据格式为:  YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31',并且允许使用字符串或数字为此列复制。

日期赋值时,允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00

我们传的时候 insert into test(count_data) values (20190922). 不要把20190922转为2019-09-22

使用ignore关键字,避免重复插入记录可以使用:(主健会变化)

insert ignore into student_task_trace (student_id) VALUES (20)

使用Replace,如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除,存入新纪录:

REPLACE INTO student_task_trace (student_id) VALUES (20)

如果有主键的情况下,可以通过惟一索引来防止重复数据的插入

数据插入一个事件的时候 有好几个不同的值 总会覆盖 ,所以需要给不同值的字段设置个唯一索引。

除非清空(truncate  表名)

2. 时间加减问题

如果想做时间加减的话 必须把时间变成unix时间戳 如当前时间—创建时间

SELECT user_id, device, UNIX_TIMESTAMP(create_time) create_time from t_user

int(time.time() - create_time).   不转unix无法操作

3. 时间格式化问题

如果想让时间正常显示,就需要在写sql的时候给他做格式化

SELECT DATE_FORMAT(grant_end_time, '%%Y-%%m-%%d') grant_end_time from xxxx

mysql数据插入覆盖和时间戳的问题及解决

覆盖旧数据的mysql插入

1、添加唯一索引需要保证该值只有一个

2、唯一索引需要放在最前面

3、更新的数据需要在list后面再添加一个来更新

from requests_html import HTMLSession
import pymysql
import json
import time
def mysql_db():
    a = html_data()
    #print(tuple1)
    db = pymysql.connect(
        host="localhost",
        user="root",
        passwd="zdl12345",
        database = "runoob_db",
        charset = "utf8"
    )
    cc = db.cursor()
    #sql1 = "create table sites2(id int primary key not null auto_increment,rn varchar(255) ,nn varchar(255),ol varchar(255),c2name varchar(255))"
    #cc.execute(sql1)
    #sql3 = "alter table sites2 add unique (nn)"
    #cc.execute(sql3)
    
    #print("add success")
    cc.execute("select * from sites2")
    results = cc.fetchall()
    
    #print(zb_list)
    list = []
    for i in target_data:
        #print(i)
        for k in i.keys():
            #print(key)
        
            if k == "c2name":
                list = [i["nn"],i["rn"],str(i["ol"]),i["c2name"],str(i["ol"])]
                tuple1 = tuple(list)
                #print(tuple1)
                
                sql = "insert into sites2(nn, rn, ol, c2name) values (%s, %s, %s, %s) on duplicate key update ol = %s"
                val = tuple1
                cc.execute(sql,val)
                db.commit()
                
    db.close()
    print("insert success")
def html_data():
    global target_data
    session = HTMLSession()
    url = "https://www.douyu.com/gapi/rkc/directory/1_1/1.html"
    #headers = {'Accept-Charset': 'UTF-8'}
    database = session.get(url)
    data = database.html.text
    #print(data)
    
    jsondata = json.loads(data)
    #print(jsondata)
    target_data = jsondata["data"]["rl"]
    #print(target_data[0])
    #print(type(target_data))
    #return target_data
                 
#html_data()
#while True:
    
    mysql_db()
    time.sleep(1)
    data2 = time.time()
    s = data2 - data1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL索引篇之千万级数据实战测试
Apr 05 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 MySQL
新手入门Mysql--概念
Jun 18 MySQL
MySQL 5.7常见数据类型
Jul 15 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
MYSQL常用函数介绍
May 05 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
MySQL 计算连续登录天数
May 11 MySQL
mysql中关键词exists的用法实例详解
Jun 10 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 #MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 #MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 #MySQL
浅谈MySQL中的六种日志
Mar 23 #MySQL
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
实战 快速定位MySQL的慢SQL
关于MySQL临时表为什么可以重名的问题
You might like
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python 快速排序代码
2009/11/23 Python
python字符串替换示例
2014/04/24 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python实现随机漫步算法
2018/08/27 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
NumPy统计函数的实现方法
2020/01/21 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
办公室经理岗位职责
2014/01/01 职场文书
讲解员培训方案
2014/05/04 职场文书
2014年度考核工作总结
2014/12/24 职场文书
教师工作态度自我评价
2015/03/05 职场文书
nginx内存池源码解析
2021/11/20 Servers