错误1364(HY000):字段'id'没有默认值

时间:2017-02-21 23:08:33

标签: mysql

这是我的桌子。 id期望为主键并自动填充

mysql> DESCRIBE test_table
-> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(8)       | NO   | PRI | NULL    |       |
| name  | varchar(256) | YES  |     | NULL    |       |
| phone | varchar(20)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

但是,当我以这种方式插入数据时

mysql> INSERT INTO test_table (name, phone) VALUES ('Nikita', '26908050');

它返回错误,该id没有默认值。

ERROR 1364 (HY000): Field 'id' doesn't have a default value

我怎么能告诉MySQL id必须从0开始并且每次将某些内容添加到test_table时都会收到错误?

2 个答案:

答案 0 :(得分:0)

字段id需要AUTO_INCREMENT属性。否则,它是未定义的,这就是错误消息所说的内容。

See here for full documentation and example.

如果要修改现有表,请使用以下命令:

ALTER TABLE test_table CHANGE id id INT(8) AUTO_INCREMENT PRIMARY KEY;

答案 1 :(得分:0)

我已经解决了编辑mysql配置文件的问题:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

查找: [mysqld]

并在其下输入

sql_mode = 

所以,保存文件并重启mysql服务器