在使用MySQL时,有时候会遇到这样的错误提示:Incorrect integer value: ” for column ‘id’ at row 1(在行1的’id’列中的“”不正确的整数值)。那么这个错误是什么意思?如何解决呢?
这个错误提示意味着我们正在尝试将一个空字符串值赋给整数类型的列(通常是ID列),而这是不允许的。MySQL要求我们为整数类型的列提供一个有效的整数值,如果我们提供了一个空字符串,就会触发这个错误.
示例
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
);
如果我们尝试向该表中插入一行数据,其中id列留空,那么就会触发这个错误。例如,我们可能会使用以下命令:
INSERT INTO users (name, age) VALUES ('Alice', 25);
这个命令会触发以下错误:
ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1
解决方案1:
在INSERT命令中为id列提供有效的整数值,例如:
INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);
解决方法2:
将id列定义为自增长列,并确保在INSERT命令中不提供id列的值。
解决方法3:
查看vim /etc/my.cnf 中
默认增加了其中的二种,一个是STRICT_TRANS_TABLES
sql-mode=“NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
//重启mysql服务