MySQL设置自增字段

1、MySQL每张表只能有1个自增字段,这个自增字段即可作为主键,也可用作非主键使用,但是请注意将自增字段当做非主键使用时必须为其添加唯一索引,否则系统将会报错

1)将自动增长字段设置为主键

    CREATE TABLE t1 (
    id INT auto_increment PRIMARY KEY,
    sid INT
    );
2)将自动增长字段设置为非主键

    CREATE TABLE t2 (
    sid INT PRIMARY KEY,
    id INT auto_increment UNIQUE
    );
3)将自动增长字段设置为非主键如果为添加唯一索引将报错
    CREATE TABLE t3 (
    sid INT PRIMARY KEY,
    id INT auto_increment
    );

2、MySQL中的自增字段在删除数据并重新插入数据时,自增字段不会重头开始计数。

原文地址:https://www.cnblogs.com/llljpf/p/8620698.html

时间: 2024-10-08 22:11:48

MySQL设置自增字段的相关文章

Mysql中自增字段(AUTO_INCREMENT)的一些常识

Mysql中自增字段(AUTO_INCREMENT)的一些常识 在系统开发过程中,我们经常要用到唯一编号.使用过mysql的人都应该知道,mysql有一个定义列为自增的属性:AUTO_INCREMENT. 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引.(不一定要做主键) 1 2 3 mysql> create table t4 (id int auto_increment); ERROR 1075 (42000): Incorrect

MySQL设置自增初始值和步长

MySQL设置自增初始值和步长 我们可以通过:SHOW VARIABLES LIKE 'auto_inc%'; 查看当前数据库的自增长设置. auto_increment_increment这是自增长的步长. auto_increment_offset这是自增长开始的值.‘ 现在想要更改test表的id增长开始值和增长的步长,可以使用如下方法: SET @@auto_increment_increment=3; -- 将自增长步长设置为3 SET @@auto_increment_offset=

mysql设置自增主键

--建表语句 create table user( id integer primary key, firstname varchar(200) not null, lastname varchar(200) not null, age integer ); --设置自增主键 alter table user modify id integer auto_increment ;

INNODB自增主键的一些问题 vs mysql获得自增字段下一个值

今天发现 批量插入下,自增主键不连续了....... InnoDB AUTO_INCREMENT Lock Modes This section describes the behavior of AUTO_INCREMENT lock modes used to generate auto-increment values, and how each lock mode affects replication. Auto-increment lock modes are configured

mysql设置自增id清零 auto_increment

清空表数据之后,如何让自增id清零,即从0开始计数呢 ALTER TABLE TABLE_NAME AUTO_INCREMENT = 0; 想让id从1开始,就让 AUTO_INCREMENT = 1 就行了.

mysql数据库自增id重新从1排序的两种方法

mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始了哦. 使用mysql时,通常表中会有一个自增的id字段,但当我们想将表中的数据清空重新添加数据时,希望id重新从1开始计数,用以下两种方法均可: 通常的设置自增字段的方法:创建表格时添加: create table table1(id int auto_increment primary key,...) 创建表格后添加: alter table table1 add id int aut

mysql 数据库自增id 的总结

有一个表StuInfo,里面只有两列 StuID,StuName其中StuID是int型,主键,自增列.现在我要插入数据,让他自动的向上增长,insert into StuInfo(StuID,StuName) values(????) 如何写? INSERT INTO StuInfo(StuID,StuName) VALUES (NULL, `字符`)或者INSERT INTO StuInfo(StuName) VALUES (`字符`) INSERT和REPLACE语句的功能都是向表中插入新

[DB][MySql]关于取得自增字段的值、及@@IDENTITY 与并发性问题

对于刚从Oracle转向MySql的人都会为,MySql中没有Oracle里的Sequence而感到困惑.MySql中没有了Sequence,那么MySql的主键用什么方式来实现最好呢? 主要有下面几种方式: 1.自增字段作为主键. [推荐方案] MySql尽管比Oracle少了Sequence,可是多了字段的自增长特性. 插入完了以后能够通过运行[SELECT @@IDENTITY]获取上一条插入语句中生成的自增长字段的值. 这个语句非常特别,没有关联到特定的SQL语句,会 让人感觉迷糊,他究

使用命令设置MySQL数据表自增ID起始值

使用命令设置MySQL数据表自增ID起始值技术 maybe yes 发表于2015-01-24 16:14 原文链接 : http://blog.lmlphp.com/archives/68  来自 : LMLPHP后院 有 时候我们清空了 MySQL 数据库中数据表的记录,自动增长的 ID 值变的很大,如何将自动增长的 ID 值设置为1或者修改为其他的值呢?使用一些工具,比如 NaviCat for MySQL 当然非常简单,通过在设计表处修改即可,其他的一些工具也都很简单.下面给出使用 SQ