参考资料

  1. MySQL 正则表达式详细说明以及案例
  2. MySQL 查询数据详细说明以及案例
  3. MySQL LIKE 子句详细说明以及案例
  4. MySQL GROUP BY 语句详细说明以及案例
  5. MySQL 导出数据详细说明以及案例
  6. MySQL ALTER 命令详细说明以及案例
  7. MySQL ORDER BY(排序) 语句详细说明以及案例
  8. MySQL 数据类型详细说明以及案例

MySQL 序列使用(AUTO_INCREMENT)详细说明

  1. AUTO_INCREMENT 概述

    • AUTO_INCREMENT 是 MySQL 中用于自动生成唯一标识符的属性,通常用于主键列。

    • 每次插入新记录时,MySQL 会自动为该列生成一个比当前最大值大1的值。

  2. 创建表时使用 AUTO_INCREMENT

    • 在创建表时,可以为某一列指定 AUTO_INCREMENT 属性。

    • 示例:

      CREATE TABLE users (
          id INT AUTO_INCREMENT PRIMARY KEY,
          username VARCHAR(50) NOT NULL,
          email VARCHAR(100) NOT NULL
      );
    • 在这个例子中,id 列会自动递增。

  3. 插入数据

    • 插入数据时,不需要为 AUTO_INCREMENT 列指定值,MySQL 会自动生成。

    • 示例:

      INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
      INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com');
    • 第一次插入时,id 为1,第二次插入时,id 为2。

  4. 获取最后插入的 ID

    • 使用 LAST_INSERT_ID() 函数可以获取最后插入的 AUTO_INCREMENT 值。

    • 示例:

      SELECT LAST_INSERT_ID();
  5. 修改 AUTO_INCREMENT 起始值

    • 可以使用 ALTER TABLE 语句修改 AUTO_INCREMENT 的起始值。

    • 示例:

      ALTER TABLE users AUTO_INCREMENT = 100;
    • 下一次插入时,id 将从100开始。

  6. 重置 AUTO_INCREMENT 值

    • 如果需要重置 AUTO_INCREMENT 值,可以使用 ALTER TABLE 语句。

    • 示例:

      ALTER TABLE users AUTO_INCREMENT = 1;
  7. 删除记录后的 AUTO_INCREMENT

    • 删除记录不会影响 AUTO_INCREMENT 的值,即使删除了最大值的记录,下一次插入仍然会继续递增。

  8. 注意事项

    • AUTO_INCREMENT 列必须是整数类型(如 INTBIGINT 等)。

    • 每个表只能有一个 AUTO_INCREMENT 列。

    • AUTO_INCREMENT 列通常用作主键。

案例

  1. 创建表

    CREATE TABLE products (
        product_id INT AUTO_INCREMENT PRIMARY KEY,
        product_name VARCHAR(100) NOT NULL,
        price DECIMAL(10, 2) NOT NULL
    );
  2. 插入数据

    INSERT INTO products (product_name, price) VALUES ('Laptop', 999.99);
    INSERT INTO products (product_name, price) VALUES ('Smartphone', 499.99);
  3. 查询数据

    SELECT * FROM products;

    输出:

    +------------+--------------+--------+
    | product_id | product_name | price  |
    +------------+--------------+--------+
    |          1 | Laptop       | 999.99 |
    |          2 | Smartphone   | 499.99 |
    +------------+--------------+--------+
  4. 获取最后插入的 ID

    SELECT LAST_INSERT_ID();

    输出:

    +------------------+
    | LAST_INSERT_ID() |
    +------------------+
    |                2 |
    +------------------+
  5. 修改 AUTO_INCREMENT 起始值

    ALTER TABLE products AUTO_INCREMENT = 100;
  6. 插入新数据

    INSERT INTO products (product_name, price) VALUES ('Tablet', 299.99);
  7. 查询数据

    SELECT * FROM products;

    输出:

    +------------+--------------+--------+
    | product_id | product_name | price  |
    +------------+--------------+--------+
    |          1 | Laptop       | 999.99 |
    |          2 | Smartphone   | 499.99 |
    |        100 | Tablet       | 299.99 |
    +------------+--------------+--------+

通过以上步骤,你可以有效地使用 MySQL 的 AUTO_INCREMENT 属性来管理表中的唯一标识符。