mysql中自增约束关键词有哪些

mysql中自增约束关键词有哪些
最新回答
宅m

2021-02-16 13:04:27

MySQL 中与自增约束相关的关键词主要包括以下三个:

  • AUTO_INCREMENT用于定义自增列,插入新行时自动生成递增的唯一值。仅适用于整数类型(如 TINYINT、INT、BIGINT)。每次插入若未指定该列值,系统会自动分配当前最大值 +1。

  • PRIMARY KEY可与 AUTO_INCREMENT 结合使用,将自增列设为主键。主键要求非空且唯一,确保每行数据有唯一标识。例如:

    CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL);
  • UNIQUE自增列也可设为唯一索引(UNIQUE),允许 NULL 值(但非 NULL 值必须唯一)。与主键的区别在于唯一索引不强制非空。例如:

    CREATE TABLE products ( code INT AUTO_INCREMENT UNIQUE, name VARCHAR(100) NOT NULL);
关键注意事项:
  1. 数据类型限制:AUTO_INCREMENT 仅支持整数类型,其他类型(如 VARCHAR)无效。
  2. 主键与唯一索引

    主键(PRIMARY KEY)自动隐含唯一性且非空。

    唯一索引(UNIQUE)允许空值,但重复非空值会报错。

  3. 初始值与步长:可通过 ALTER TABLE 修改自增起始值或步长(如 AUTO_INCREMENT=100)。
示例代码:-- 创建带自增主键的表CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, customer_name VARCHAR(100) NOT NULL);-- 创建带自增唯一索引的表CREATE TABLE logs ( log_id INT AUTO_INCREMENT UNIQUE, message TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

通过合理组合这些关键词,可以灵活设计满足唯一性、标识性需求的数据表结构。