我有这张桌子:
CREATE TABLE `message` (
`m_id` INT(11) NOT NULL AUTO_INCREMENT,
`p_id` VARCHAR(30) NOT NULL,
PRIMARY KEY (`m_id`)
)
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
Run Code Online (Sandbox Code Playgroud)
这个插入
INSERT INTO `message` VALUES ('7');
Run Code Online (Sandbox Code Playgroud)
我收到"列数与行值计数不匹配"错误.它应该工作正常,因为主键是auto_increment
.
Con*_*rix 14
通常,当您具有"自动递增"字段时,您不希望指定该列的值.这意味着您从中删除该值VALUES
但正如Johan指出的那样,只要表中的列数与列数不匹配,就必须在目标表上指定列列表.
如果列数或列顺序发生变化,无论如何都要做好
INSERT INTO
message
(p_id)
Values ('7')
Run Code Online (Sandbox Code Playgroud)
当值的数量不等于列数时,必须指定列名:
INSERT INTO message (p_id) VALUES ('7');
Run Code Online (Sandbox Code Playgroud)
你可以这样做
INSERT INTO `message` VALUES (NULL, '7');
Run Code Online (Sandbox Code Playgroud)
这将匹配列数并忽略空插入到自动增量id并插入值auto increment
;
归档时间: |
|
查看次数: |
21193 次 |
最近记录: |