[SQL]insert into account(uname,money) values('abc',12.3) [Err] 1364 - Field 'id' doesn't have a default value
时间: 2024-09-15 08:12:53 浏览: 38
这个错误信息表明在尝试插入数据时,`account` 表缺少名为 `id` 的字段,并且它没有设置默认值。当你运行`INSERT`语句时,如果没有显式提供`id`列的值,MySQL会期望有一个默认值。解决这个问题通常有几种方式:
1. **为`id`字段提供一个默认值**:如果`id`是一个自动递增的主键,你可以忽略它,因为数据库会在插入时自动生成一个唯一的ID。如果需要手动设定,可以这样做:
```sql
INSERT INTO account (uname, money) VALUES ('abc', 12.3);
```
2. **如果`id`不是自动增长,那么你需要在`VALUES`中提供一个`id`值**:
```sql
INSERT INTO account (id, uname, money) VALUES (1, 'abc', 12.3);
```
这里假设`id = 1`是一个合理的值。
3. **如果`id`是一个非主键列并且你不想设置默认值,可以在创建表的时候明确声明`id`为`NOT NULL`但无默认值**:
```sql
CREATE TABLE account (
id INT NOT NULL,
...其他字段...
);
```
阅读全文