mysql数据插入覆盖和时间戳的问题及解决
作者:YF-海纳百川 发布时间:2024-01-21 02:15:26
数据插入覆盖和时间戳问题
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插入
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
来源:https://www.cnblogs.com/yuanfang0903/p/10870627.html
猜你喜欢
- socket编程过程中往往会遇到这样那样的问题,出现了这些问题,有的是由于并发访问量太大造成的,有些却是由于代码中编程不慎造成的。比如说,最
- 本文实例讲述了Python实现的根据文件名查找数据文件功能。分享给大家供大家参考,具体如下:#-*- coding: UTF-8 -*-im
- 一、JDBC概述JDBC全称Java Database Connectivity,它是一个独立于特定数据库管理系统、通用的SQL数据库存取和
- 终于把promise, async, await的区别和联系弄清楚了,看下面代码写法1,2是promise的写法写法6是async和awai
- 本文实例讲述了python写入中英文字符串到文件的方法。分享给大家供大家参考。具体分析如下:python中如果使用系统默认的open方法打开
- 本文实例讲述了Python查找数组中数值和下标相等的元素。分享给大家供大家参考,具体如下:题目描述:假设一个单调递增的数组中的每个元素都是整
- MigrationsDjango中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行
- 我们进行CSS网页布局的时候,都知道它需要符合XHTML1.0规范。如果我们在进行CSS网页布局的时候,还在使用被W3C废弃的元素,那就失去
- 简介短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。早期短链接广泛应用于图片上传网站,通过缩短网址URL
- 前言对于HTTP请求,我们要在脑子里有一个根深蒂固的概念,那就是任何客户端传过来的数据都是不可信任的。那么开发接口的时候需要对客户端传提交的
- 本项目为python项目需要安装python及python的opencv模块:opencv_python-4.0.1-cp37-cp37m-
- MySQL 处理重复数据有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&q
- 实现原理:将用户信息保存在数据库中,若能在数据库中检索到用户输入的姓名和口令,就允许访问该一页面。代码如下:protect.asp<h
- <script language="javascript"><!-- var&n
- 前言今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图:效果图一:效果图二:根据效果图分析的还是比较
- 这篇文章主要介绍了python文字和unicode/ascll相互转换函数及简单加密解密实现代码,下面我们来了解一下。import reim
- 1、get方法请求接口url:显而易见,就是接口的地址url啦headers:请求头,例如:content-type = applicati
- 表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验。网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没
- PDO::queryPDO::query — 执行 SQL 语句,返回PDOStatement对象,可以理解为结果集(PHP 5 >=