这是我的桌子。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)
Run Code Online (Sandbox Code Playgroud)
但是,当我以这种方式插入数据时
mysql> INSERT INTO test_table (name, phone) VALUES ('Nikita', '26908050');
Run Code Online (Sandbox Code Playgroud)
它返回错误,该 id 没有默认值。
ERROR 1364 (HY000): Field 'id' doesn't have a default value
Run Code Online (Sandbox Code Playgroud)
我如何告诉 MySQL id 必须以 0 开头,并且每次向 test_table 添加内容时都会增加?
该字段id需要AUTO_INCREMENT属性。否则,它是未定义的,这就是错误消息的内容。
如果要修改已经存在的表,请使用以下命令:
ALTER TABLE test_table CHANGE id id INT(8) AUTO_INCREMENT PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)