这是我的桌子。 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时都会收到错误?
答案 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服务器