Mysql基操

本文介绍了如何在MySQL中重置自增ID,包括使用TRUNCATE TABLE和DELETE配合DBCC CHECKIDENT进行重置。此外,还展示了根据多个条件查询数据、使用INSERT ON DUPLICATE KEY UPDATE处理唯一索引冲突以及创建触发器的示例。另外,提供了一种根据时间戳查询三天内数据的方法。这些技巧对于数据库管理和数据操作至关重要。

让自增id从1开始

方法1:

这方法即会删除全部数据,而且重新定位自增的字段

truncate table 你的表名

方法2:

重新定位自增的字段,让它从1开始

delete from 你的表名
dbcc checkident(你的表名,reseed,0) 


根据多个条件同时查询多条数据的情况

SELECT * FROM table1 WHERE `id` IN (2,5,8);


MySQL批量/循环插入遇上唯一索引避免方法

当遇上唯一索引,只更新其他值

INSERT INTO contacts(phone, sex, age) VALUES (153xxxx, man, 18),(152xxxx, man, 19) ON DUPLICATE KEY UPDATE sex=woman,age=20;

上面这段假如153xxx是已存在的数据,那么就会更新它的sex、age字段为woman、20


Mysql设置触发器

参考:https://blog.youkuaiyun.com/lz20120808/article/details/78734201

下面的语句是创建一个触发器,意思为“创建一个触发器名为‘ins_sta’,当在register_phone表中插入数据时执行下面语句,如果新的register值等于1时向statistics表插入值phone,phone的值等于register_phone表新的register的phone值,并且如果此phone值已经存在的情况下忽略唯一限制更新phone值(其实就是为了防止唯一值报错)”

create trigger ins_sta
after insert on register_phone for each row
begin
      IF new.register=1 THEN
      INSERT into statistics (phone)
      VALUES (new.phone) ON DUPLICATE KEY UPDATE phone=new.phone;
      end if;
end
 

在navicat上执行同样的操作:

此表为register_phone


根据int型时间戳查询三天以内的数据

SELECT Count(*) FROM  table_Name WHERE DATE(from_unixtime(time_Data,'%Y-%m-%d')) > DATE(CURDATE() - INTERVAL 3 DAY);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值