无效的查询:列计数与第1行的值计数不匹配“MySQL中的错误

时间:2013-09-16 15:55:22

标签: mysql sql

site

的表结构
CREATE TABLE `site` (
  `id` int(10) NOT NULL auto_increment,
  `site_name` varchar(255) NOT NULL,
  `adresa` varchar(255) NOT NULL,
  `oras` varchar(255) NOT NULL,
  `stat` varchar(255) NOT NULL,
  `zip` varchar(255) NOT NULL,
  `telefon` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-

- 转储表site

的数据
INSERT INTO `site` VALUES (1, 'company LLC', 'address   ', 'city, KS', 'zip ', '(111) 111-7338', 'sales');

5 个答案:

答案 0 :(得分:0)

你在城市和KS之间缺少撇号,你有:

'city, KS'

应该在哪里

'city', 'KS'

由于拼写错误导致列数不同,因此数据库服务器无法在没有明确命名列的情况下执行插入操作。

答案 1 :(得分:0)

试试这个:

INSERT INTO `site` VALUES (1, 'company LLC', 'address', 'city', 'KS', 'zip', '(111) 111-7338', 'sales');

问题来自您的'KS''city',没有单引号。

答案 2 :(得分:0)

您需要在INTO子句中指定 ALL 相关列。

INSERT INTO your_table (list, of, columns)
  VALUES (set, of, values)

您似乎正在使用auto_increment字段,因此应在字段列表中省略此字段,因为它的值是由内部数据库派生的。

答案 3 :(得分:0)

你可以试试这个:

INSERT INTO `site`( `id` ,
  `site_name` ,
  `adresa`,
  `oras`,
  `stat`
  `zip`,
  `telefon`,
  `email`) VALUES (1, 'company LLC', 'address', 'city', 'KS', 'zip', '(111) 111-7338', 'sales');

旁注: - 插入时始终尝试提及列名称。它被认为是一种很好的做法。

答案 4 :(得分:0)

只是改变里面的一些值,它对应于你想要放在那种数据中的任何值,你不需要输入id因为它已经自动递增

INSERT INTO `site` VALUES ('site_name', 'addressa', 'oras', 'stat', 'zip', 'telephone', 'email');