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
Windows10下安装MySQL8
Apr 06 MySQL
详解MySQL的半同步
Apr 22 MySQL
MySQL下使用Inplace和Online方式创建索引的教程
May 26 MySQL
MySQL注入基础练习
May 30 MySQL
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
Jun 26 MySQL
sql注入教程之类型以及提交注入
Aug 02 MySQL
mysql的数据压缩性能对比详情
Nov 07 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
Golang连接并操作MySQL
Apr 14 MySQL
Mysql如何查看是否使用到索引
Dec 24 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
javascript 读取图片文件的大小
2009/06/25 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
详解django.contirb.auth-认证
2018/07/16 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
详解python中@的用法
2019/03/27 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
简历自我评价模版
2014/01/31 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
《将心比心》教学反思
2014/04/08 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
色戒观后感
2015/06/12 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
MySQL数据库 安全管理
2022/05/06 MySQL