当前位置: 首页 > 编程笔记 >

在MySQL中使用序列的简单教程

轩辕炎彬
2023-03-14
本文向大家介绍在MySQL中使用序列的简单教程,包括了在MySQL中使用序列的简单教程的使用技巧和注意事项,需要的朋友参考一下

序列是一组整数1,2,3,...中生成的顺序。序列中经常使用的数据库,因为很多应用都需要一个表中的每一行包含一个独特的值和序列提供了一个简单的方法来产生。本章介绍如何使用MySQL中的序列。
使用自动递增列:

在MySQL中使用序列最简单的方法是定义一个AUTO_INCREMENT列,剩下的事情留给MySQL处理。
实例:

试试下面的例子。这将创建表之后,它会在此表中它不是必需的记录ID插入几行,因为它由MySQL自动递增。

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值:

LAST_INSERT_ID()是一个SQL的函数,可以用它在任何客户端来了解如何发出SQL语句。否则PERL和PHH的脚本提供了独特的功能来检索的最后一个记录的自动递增值。
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 例子:

发出后产生一个AUTO_INCREMENT值的查询,检索的值调用mysql_insert_id():

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

重编为一个现有的序列:

有可能出现这样的情况:当记录从表中删除了一部分要重新排序的所有记录。这可以通过使用一个简单的技巧,但应该非常小心,如果表是参加与其他表。

如果确定是不可避免的重测序的AUTO_INCREMENT列的方式,这样做是从表中删除列,然后重新添加它。下面的例子演示了如何使用这种技术在BUG重新编号的id值:

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

启动序列在一个的特殊的值:

默认情况下,MySQL将开始顺序1,但在创建表的时候可以指定任何其他数字。下面的例子,MySQL将从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
);

或者也可以创建表,然后设置初始序列值ALTER TABLE。

mysql> ALTER TABLE t AUTO_INCREMENT = 100;


 类似资料:
  • 本文向大家介绍Mysql使用简单教程(二),包括了Mysql使用简单教程(二)的使用技巧和注意事项,需要的朋友参考一下 接上文Linux系统下Mysql使用简单教程(一) 字段参数以“(字段名1 数据类型1,字段名2 数据类型2,......)”的形式构建。 关于mysql常用的数据类型,一下是比较常用的几种,想查阅比较详细的资料可以自寻去网上搜寻。 ———————————————————————

  • 本文向大家介绍在Lua程序中使用MySQL的教程,包括了在Lua程序中使用MySQL的教程的使用技巧和注意事项,需要的朋友参考一下  导入MySQL 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成。在安装过程中,文件夹libsql包含数据库相关的文件。   可变的MySQL将提供通过参照主MySQL表访问该功能。 建立连接 我们可以设立一个启动MySQL的环境,然后创建环境

  • 本文向大家介绍Linux系统下Mysql使用简单教程(一),包括了Linux系统下Mysql使用简单教程(一)的使用技巧和注意事项,需要的朋友参考一下 如果你会查询这些相关的问题,说明你是一个正在或者准备从事IT的程序猿,对于一个程序猿而言,不会使用linux系统的程序猿不是一好的程序猿哦!因为windows有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的。so以下都是在linux系统

  • 问题内容: 是否可以将简单成员资格提供程序与mysql一起使用(也可以使用实体框架) 如果是,如何实现。 任何文档/链接都非常感谢 预先感谢 问题答案: 我在GitHub上创建MySqlSimpleMembershipProvider并制作示例项目。 https://github.com/xyz37/MySqlSimpleMembershipProvider 就这样。 感谢您对这个问题的回答。 单

  • 本文向大家介绍mysql 8.0.12 简单安装教程,包括了mysql 8.0.12 简单安装教程的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了mysql 8.0.12 安装教程,供大家参考,具体内容如下 下载地址:地址链接 现在最下边的社区版本,也就是免费版本 之后我们会看到有两个选择的下载,一个为zip压缩包格式,一个是Install版本,个人建议下载zip压缩包格式,下载和安装都

  • 本文向大家介绍在Python中使用Mako模版库的简单教程,包括了在Python中使用Mako模版库的简单教程的使用技巧和注意事项,需要的朋友参考一下 Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django、Jinja2等等。 基本用法 创建模板并渲染它的最基本的方法是使用 Template 类:   传给 Template 的文本参数被编译为一个Pyth