首页 > 解决方案 > Mysql自增不自增

问题描述

我有这张桌子:

mysql> desc Customers;

+------------+------------------+------+-----+---------+-------+
| Field      | Type             | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+-------+
| CustomerID | int(10) unsigned | NO   | PRI | NULL    |       |
| Name       | char(50)         | NO   |     | NULL    |       |
| Address    | char(100)        | NO   |     | NULL    |       |
| City       | char(30)         | NO   |     | NULL    |       |
+------------+------------------+------+-----+---------+-------+

现在,如果我想插入示例数据:

mysql> insert into Customers values(null, 'Julia Smith', '25 Oak Street', 'Airport West');
ERROR 1048 (23000): Column 'CustomerID' cannot be null

我知道我不能使 ID 为空,但这应该是 mysql 的工作来设置它的数字并增加它们。所以我尝试简单地不指定 id:

mysql> insert into Customers (Name, Address, City) values('Julia Smith', '25 Oak Street', 'Airport West');
Field 'CustomerID' doesn't have a default value

现在我陷入了陷阱。我不能使 id 为空(这就是说 mysql“增加我的 ID”),我不能省略它,因为没有默认值。那么我应该如何让mysql在新插入中为我处理id?

标签: mysqlnullauto-incrementdefault-value

解决方案


主键意味着每个 CustomerID 都必须是唯一的。并且您也将其定义为 NOT NULL,因此不允许 INSERT 为 NULL

而不是 >| 客户ID | int(10) 无符号 | 否 | 优先级 | 空 |

做了

CustomerID  BIGINT AUTO_INCREMENT PRIMARY KEY

你可以毫无问题地输入你的数据

ALTER TABLE table_name MODIFY CustomerID BIGINT  AUTO_INCREMENT PRIMARY KEY

推荐阅读