INSERT INTO `configuration` VALUES ('', 'News Box Character Count', 'NEWS_BOX_CHAR_COUNT', '200', 'Set the number of characters (bytes) that you want to display in the news preview box.', 19, 99, NULL, '2004-09-07 12:00:00', NULL, NULL);
我在phpMyAdmin中运行此命令,显示
#1366 - Incorrect integer value: '' for column 'configuration_id' at row 1
configuration_id
是一个自动增量字段,开始为1
答案 0 :(得分:5)
而不是INSERT INTO configuration VALUES ('', 'News Box Character Count',
将值NULL
传递给auto_increment或整数列,或者您只是不在sql查询中包含该列。
INSERT INTO `configuration` VALUES (NULL, 'News Box Character Count', ...
这是因为,mysql在严格模式下运行。
当没有任何内容输入时,您可以对所有整数列使用NULL
或关闭MySql Strict模式。
答案 1 :(得分:2)
对于autoincrement in MySQL,插入NULL 或根本不插入任何内容:
INSERT INTO `configuration` VALUES (NULL, 'News Box Character Count', 'NEWS_BOX_CHAR_COUNT', '200', 'Set the number of characters (bytes) that you want to display in the news preview box.', 19, 99, NULL, '2004-09-07 12:00:00', NULL, NULL);
INSERT INTO `configuration` (every,column,except,the,first) VALUES ('News Box Charac`ter Count', 'NEWS_BOX_CHAR_COUNT', '200', 'Set the number of characters (bytes) that you want to display in the news preview box.', 19, 99, NULL, '2004-09-07 12:00:00', NULL, NULL);`
答案 2 :(得分:1)
对我来说这似乎很明显?你给了一个整数列,你显式插入一个字符串(虽然它是空的)。如果列设置为自动递增,请从值数组中删除第一个值(''),您应该没问题。此外,您可能希望指定要为其插入值的列,例如:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
答案 3 :(得分:1)
对于AUTO_INCREMENT字段,您可以设置NULL;它会自动生成新值。
例如 -
INSERT INTO table_name VALUES(NULL, 'value', ...)...
答案 4 :(得分:0)
如果列是自动递增的,那么您可以从INSERT
语句中简单地省略它。
答案 5 :(得分:0)
将''值替换为NULL(''不是有效整数)。请参阅here。
答案 6 :(得分:0)
插入时应始终使用列名。因此,只需不必插入configuration_id列,并且在更改列时sql语句不会中断。
使用以下内容:INSERT INTO table (column1, column2) VALUES (value1, value2);