MySQL 序列使用

MySQL 序列使用

MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。

本章我们将介绍如何使用MySQL的序列。


使用AUTO_INCREMENT

MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列。

实例

以下实例中创建了数据表insect, insect中id无需指定值可实现自动增长。

mysql> CREATE TABLE insect
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL, # type of insect
    -> date DATE NOT NULL, # date collected
    -> origin VARCHAR(30) NOT NULL # where collected
);
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO insect (id,name,date,origin) VALUES
    -> (NULL,‘housefly‘,‘2001-09-10‘,‘kitchen‘),
    -> (NULL,‘millipede‘,‘2001-09-10‘,‘driveway‘),
    -> (NULL,‘grasshopper‘,‘2001-09-10‘,‘front yard‘);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM insect ORDER BY id;
+----+-------------+------------+------------+
| id | name        | date       | origin     |
+----+-------------+------------+------------+
|  1 | housefly    | 2001-09-10 | kitchen    |
|  2 | millipede   | 2001-09-10 | driveway   |
|  3 | grasshopper | 2001-09-10 | front yard |
+----+-------------+------------+------------+
3 rows in set (0.00 sec)

获取AUTO_INCREMENT值

在MySQL的客户端中你可以使用 SQL中的LAST_INSERT_ID( ) 函数来获取最后的插入表中的自增列的值。

在PHP或PERL脚本中也提供了相应的函数来获取最后的插入表中的自增列的值。

PERL实例

使用 mysql_insertid 属性来获取 AUTO_INCREMENT 的值。 实例如下:

$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES(‘moth‘,‘2001-09-14‘,‘windowsill‘)");
my $seq = $dbh->{mysql_insertid};

PHP实例

PHP 通过 mysql_insert_id ()函数来获取执行的插入SQL语句中 AUTO_INCREMENT列的值。

mysql_query ("INSERT INTO insect (name,date,origin)
VALUES(‘moth‘,‘2001-09-14‘,‘windowsill‘)", $conn_id);
$seq = mysql_insert_id ($conn_id);

重置序列

如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:

mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
    -> ADD PRIMARY KEY (id);

设置序列的开始值

一般情况下序列的开始值为1,但如果你需要指定一个开始值100,那我们可以通过以下语句来实现:

mysql> CREATE TABLE insect
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL, # type of insect
    -> date DATE NOT NULL, # date collected
    -> origin VARCHAR(30) NOT NULL # where collected
);

或者你也可以在表创建成功后,通过以下语句来实现:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;
时间: 2024-10-14 13:49:54

MySQL 序列使用的相关文章

MySQL 序列 AUTO_INCREMENT

MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列. 使用AUTO_INCREMENT MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列. 实例 以下实例中创建了数据表insect, insect中id无需指定值可实现自动增长. mysql> CREATE TABLE insect -> ( ->

MySQL 序列使用:使用 AUTO_INCREMENT、获取AUTO_INCREMENT值

MySQL 序列使用 MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列. 使用 AUTO_INCREMENT MySQL 中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列. 实例 以下实例中创建了数据表 insect, insect 表中 id 无需指定值可实现自动增长. mysql> CREATE TABLE

MySQL 教程分享

MySQL 教程 MySQL 安装 MySQL 管理与配置 MySQL PHP 语法 MySQL 连接 MySQL 创建数据库 MySQL 删除数据库 MySQL 选择数据库 MySQL 数据类型 MySQL 创建数据表 MySQL 删除数据表 MySQL 插入数据 MySQL 查询数据 MySQL where 子句 MySQL UPDATE 查询 MySQL DELETE 语句 MySQL LIKE 子句 mysql order by Mysql Join的使用 MySQL NULL 值处理

有什么学习MySQL的好教程吗?

  有什么学习Mysql的好教程吗? 文档是最好的,现整理如下: [mysql教程]MySQL 教程 [MySQL教程]MySQL 安装 [MySQL教程]MySQL 管理 [MySQL教程]MySQL PHP 语法 [MySQL教程]MySQL 连接 [MySQL教程]MySQL 创建数据库 [MySQL教程]MySQL 删除数据库 [MySQL教程]MySQL 选择数据库 [MySQL教程]MySQL 数据类型 [MySQL教程]MySQL 创建数据表 [MySQL教程]MySQL 删除数据

学习笔记--MySQL

//安装mysql5.7解压版 1. 解压 2. 设置环境变量 PATH中加入mysql的bin路径 3. 修改my-default.ini [mysqld] basedir = D:\MySQL\Server\mysql-5.6.20-win32 datadir = D:\MySQL\Server\data port = 3306 4. 安装mysql服务 在bin下执行: D:\MySQL\Server\mysql-5.6.20-win32\bin>mysqld -install Servi

MySQL初学者入门教程

1.MySQL安装(Window7 安装) 在任何版本的 Windows 默认安装是现在比以前要容易得多,MySQL巧妙地打包安装程序.只需下载安装包,随地把它解压缩,并运行 mysql.exe. 下载地址:http://dev.mysql.com/downloads/ 页面如下图所示: 这里点击:DOWNLOAD 链接,进入一下页面: 这里点击:DOWNLOAD 链接,进入一下页面: 这里要求注册网站帐号,但可以直接通过.如上点击 "No thanks, just start my downl

学习MySQL(下)

具体实例 22.MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 1.如果需要修改数据表的名称,可以在 ALTER TABLE 语句中使用 RENAME 子句来实现.以下实例将数据表 old_tablename 重命名为 new_tablename: mysql> ALTER TABLE old_tablename RENAME TO new_tablename; 2.删除,添加或修改表字段,如下命令使用了 ALTER 命令及 DR

mysql数据库02 基础教程

查询数据 SELECT column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT JOIN table_2 ON conditions] WHERE conditions GROUP BY column_1 HAVING group_conditions ORDER BY column_1 LIMIT offset, length; SELECT语句由以下列表中所述的几个子句组成: SELECT 之后是逗号分隔列或星号(*)的列表,表示要

mysql-12序列使用

mysql序列是一组整数:1,2,3....,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段自动增加,就可以使用mysql序列来实现. 使用auto_increment来定义列 drop table if EXISTS test_autoincrement ; create table `test_autoincrement`( `id` int UNSIGNED not null auto_increment, PRIMARY KEY (id), `name` varchar(20