MySQL 序列17 Mar 2025 | 4 分钟阅读 MySQL 中的序列是根据特定需求生成的整数排列(1, 2, 3,依此类推)。序列在数据库中用于生成唯一数字。许多应用程序要求表中的每一行都包含一个不同的值,例如 student_table 中的学生滚动编号、HR 中的员工编号、CRM 中的客户 ID 等。为了满足这种类型的排列,我们使用序列来提供一种生成它们的简单方法。 MySQL不提供任何内置函数来为表行或列创建序列。但是我们可以通过SQL查询来生成它。在本文中,我们将介绍如何使用 SQL 查询在 MySQL 中创建序列。 使用 AUTO_INCREMENT 创建序列在MySQL中创建序列最简单的方法是在创建表时将列定义为AUTO_INCREMENT,该列应该是主键列。 以下是使用 AUTO_INCREMENT 属性用于列时应考虑的规则:
示例 让我们通过以下示例来理解这一点。首先,我们需要创建一个新表,并确保其中有一个具有 AUTO_INCREMENT 属性的列,并且该列也是 PRIMARY KEY。 执行以下查询以创建表 接下来,我们将向此表中插入几行,无需为每一行提供 id,因为它是被 MySQL 自动递增的。 现在执行SELECT 语句来验证记录 我们可以在下图中看到结果。 ![]() 在上图中,我们将 Id 列定义为 PRIMARY KEY 和 AUTO_INCREMENT 选项,该选项自动递增此列并始终在其存储唯一值。 当我们执行INSERT 查询时,我们不为 Id 列提供值,但 MySQL 会自动为其生成序列。 MySQL 序列如何工作?MySQL 中的 AUTO_INCREMENT 列包含以下属性:
让我们看一些更多示例,以便更好地理解 MySQL 序列的用法。 向表中插入两条新记录。 并执行 SELECT 语句以验证输出 ![]() 接下来,我们将使用以下查询删除 id 为 6 的昆虫 再次,我们将使用以下语句向表中插入新行 我们将再次执行 SELECT 语句查看输出 ![]() 在上图中,我们可以看到 MySQL 不会重新使用已删除的序列号。这是因为 Insects 表的存储引擎是InnoDB。因此,insert 查询将在 Insects 表中添加新的序列号 8。 现在,我们将更新一个现有的昆虫,其Id 为 3 更新为 Id = 2: MySQL 发出了一个错误:Duplicate entry '2' for key 'insects.PRIMARY' column。让我们修复它 请看下图。 ![]() 下一个主题MySQL JSON |
我们请求您订阅我们的新闻通讯以获取最新更新。