mysql - 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?
解决方案
主键意味着每个 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
推荐阅读
- android - 底部导航视图与 RecyclerView 的最后一项重叠
- regex - 将正则表达式应用于文本文件并将结果保存在字典 python 中
- machine-learning - 如何在给定数据上正确构建模型以预测目标参数?
- webpack - Webpack:将每个入口点放到其单独的文件中
- c# - Xamarin.Android - 布局设计器空白
- artifactory - JFrog Xray 安装 Docker 在 CentOS 上安装 - 权限被拒绝
- java - 迭代变量在for循环之外是+1?
- javascript - Facebook 登录按钮未定义所有返回值
- android-studio - Android Studio 的 Dracula 配色方案搞砸了?
- matlab - 在循环中向单元格添加值