扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
重置 MySQL 自增列 AUTO_INCREMENT 初时值 (注意,使用以下任意方法都会将现有数据删除。)
成都创新互联是一家专注于成都网站设计、网站制作与策划设计,锡林浩特网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:锡林浩特等地区。锡林浩特做网站价格咨询:18980820575
方法一:
delete from tb1;
ALTER TABLE tbl AUTO_INCREMENT = 100; (好处,可以设置 AUTO_INCREMENT 为任意值开始) 提示:如果表列和数据很多, 速度会很慢,如90多万条,会在10分钟以上。
方法二:
truncate tb1; (好处, 简单, AUTO_INCREMENT 值重新开始计数.)
怎么重置mysql的自增列:
1. 支持设置自增列的值
ALTER TABLE table_name AUTO_INCREMENT = 1;
不过这种方式自能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为
当前最大值加1。innodb则不会改变。
2.通过TRUNCATE把自增列设置为0,从MySQL 5.0.13开始TRUNCATE就能重置自增列为0.myisam和innode都是如此。
TRUNCATE TABLE table_name;
3.drop和create重建表方式重置自增列为0
DROP TABLE table_name;
CREATE TABLE table_name { ... };
mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞。
想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRENT_TIMESTAMP
mysql如何设置默认值
mysql设置默认值的方法:用mysql建数据表设置默认值,代码为【stuSex varchar(2) default '男' check(stuSex in('男', '女'))】。
mysql设置默认值的方法:
create table stu(
stuId varchar(30) primary key,
stuName varchar(50) not null,
stuSex varchar(2) default '男' check(stuSex in('男', '女')),
stuJg varchar(30),
stuDept varchar(40)
)
用mysql建数据表设置默认值:
int 类型:default 1; (直接加数值)
varchar类型:default 'aaa'(用单引号)
另:经试验,在mysql中default 要写在 check之前,否则报错
新建设置默认值:
1,命令语法如下:
create table 表名(列名称 数据类型 default 默认值);
2,如果图形化界面操作,如phpmyadmin的话,一般直接默认值就可以设置选择
修改数据库表的列默认值:
命令行界面
若本身存在默认值,则先删除
alter table表名alter column字段名drop default;
然后设置默认值(若本身不存在则可以直接设定)
alter table表名 alter column字段名 set default默认值;
再次返回表的结构视图。刚刚设置的默认值已经更新了.
图形界面操作修改:
图形界面操作设置就非常简单了,直接编辑表的结构点击需要修改的列即可。
如下图打开找到默认值一般都有无,和自定义等选项
-- 方法一:
由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。
TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
1.列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
2.列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
3.你明确地设定TIMESTAMP列为NULL.
4.除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
所以把日期类型 选择成timestamp 允许空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的话,将字段设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流