MySQL自动增量不增量

问题描述

我有这张桌子:

months[months.indexOf("April")] = 'newVal';

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    |       |
+------------+------------------+------+-----+---------+-------+

我知道我不能使ID为空,但这应该是MysqL的工作,以设置其编号并递增它们。因此,我尝试简单地不指定ID:

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

现在我陷入了陷阱。我无法将id设置为null(这对于MysqL来说就是“增加我的ID”),并且由于没有认值,因此无法将其省略。那么我应该如何使MysqL在新插入中为我处理id?

解决方法

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

而不是> |客户编号| int(10)无符号|否| PRI | NULL |

制作

CustomerID  BIGINT AUTO_INCREMENT PRIMARY KEY

您可以毫无问题地输入数据

ALTER TABLE table_name MODIFY CustomerID BIGINT  AUTO_INCREMENT PRIMARY KEY
,

@米兰,

从表中删除CustomerID变量。然后使用以下详细信息再次添加该字段:

字段:CustomerID, 类型:BIGINT(10), 默认值:无, 自动递增:在复选框中打勾

单击“保存”按钮以将该新字段保存在表中。现在,我希望它在插入新记录时会起作用。谢谢。