【发布时间】:2020-12-25 20:40:11
【问题描述】:
我有这张桌子:
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 设为 null,但这应该是 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?
【问题讨论】:
-
您的
CREATE TABLE查询是什么样的? MySQL 的工作是为设置为auto_increment的字段增加数字。如果您的CustomerID是auto_increment,您会在Extra列中看到它。 -
您的字段没有
AUTO_INCREMENT。 -
这能回答你的问题吗? Alter a MySQL column to be AUTO_INCREMENT
标签: mysql null auto-increment default-value