成都网站建设设计

将想法与焦点和您一起共享

mysql的序列怎么设置 mysql实现序列

2020-01-16 控制MYSQL的自增长序列的起始值

一、修改自增长序列的值

成都创新互联专注于企业成都全网营销推广、网站重做改版、舒兰网站定制设计、自适应品牌网站建设、H5技术商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为舒兰等各大城市提供网站开发制作服务。

alter table table_name auto_increment=n;

注意:n只能大于已有的auto_increment的整数值,小于的值无效.

show table status like 'table_name' 的返回结果里的auto_increment列就是表的现有值.

二、控制主键的起点

create table 表名

(

......

) engine=INNODB auto_increment=1001 default charset=gbk;

三、自增主键归零

如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

truncate table 表名

四、获取自增主键

通过SQL select LAST_INSERT_ID()函数

通过SQL @@IDENTITY 变量

五、说明

AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复。

AUTO_INCREMENT数据列必须具备NOT NULL属性。

设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。

mysql Navicat 设置自增序列 以日期开头

-- 方法一:

由于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即可

怎么创建MySQL的序列?

mysql是没有序列的,我最近刚做完一个项目也是从oralce移植到mysql数据库上,oracle中 HIbernate配置都是这样

generator class="sequence"

param name="sequence"SEQUENCE_CHILDREM_ARCHIVE_ID/param

/generator

,到移植到mysql数据库中之后

generator class="identity"/generator

identity或者是increment都是可以滴,前提是你mysql表中的主键是auto_increatement的int类型的。

mysql如何创建一个序列

序列只有db2

oracle有,mysql没有序列的,不过你可以给你所所创建的表的主键设置为自增。

例如

create

table

A

(

id

int(20)

auto_increment

)

不过设置为自增的键必须是数值类型的。


网页标题:mysql的序列怎么设置 mysql实现序列
网页链接:http://chengdu.cdxwcx.cn/article/ddodedh.html