mysql语句

–重置mysql的表id,id从0开始自增
–方法一:

delete from tb1; 
ALTER TABLE tbl AUTO_INCREMENT = 100; 

– 方法二:

truncate tb1;

–获取当前auto_increment

select table_name, table_comment, auto_increment from information_schema.tables where table_name = 'devices';

–获取表信息

desc information_schema.tables;

–指定使用数据库

use testdb;

–获取数据库所有表名

show tables;

– 数据量太大导致(2006, ‘MySQL server has gone away’)
– 查询max_allowed_packet大小

show VARIABLES like '%max_allowed_packet%';

– 修改max_allowed_packet(20m),重启mysql服务,再进入
set global max_allowed_packet = 2010241024

–插入数据,主键重复
– 与phoenix的直接覆盖不同,mysql会报错(1062 - Duplicate entry ‘40’ for key ‘PRIMARY’)
– 方法一
– 用insert ignore代替insert,这样会忽略报错,也不会修改
–方法二
–用replace代替insert,重复会覆盖,相当与delete和insert两条语句的效果,但却是原子的。

–日期(毫秒比较)
–先设置datetime的长度设置为3,然后按照直接把datetime看出字符串处理

select * from tb where addtime = '2019-08-20 10:35:25.125';

–大于,小于也是可以的,between and区间是闭区间(可以选到等于两端的)。

select * from tb where addtime between '2019-08-20 09:06:08.615' and '2019-08-20 09:06:10.615';

–另外,获取系统时间(毫秒)

select now(3);
select current_timestamp(3);

–关于datetime和timestamp
–timestamp只能到2038年,并且和时区相关,占4个字节,效率更高。
–datetime能到9999年,和时区无关,占8个字节,效率较低。
–尽量使用datetime

–格式化打印日期类型

select date_format(addtime, '%Y-%m-%d %T') from teacher; --精确到秒
select date_format(addtime, '%Y-%m-%d %T.%f') from teacher; --精确到微秒

–所以时间比较也可以用

select * from tb where addtime = str_to_date('2019-08-20 09:06:08.615', '%Y-%m-%d %T.%f');

–时间加减

update tb set addtime = addtime + id; --错误

–如果不涉及进位和借位时是正确的,否则结果就是’0000-00-00 00:00:00’;
正确做法应该是

update set addtime=date_add(addtime, interval id second)

–把second换成microsecond就是加1微秒;
–date_sub就是相应的减。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值