有如下语句create table book(
  book_NO char(30)  primary key,/* 图书编号*/
  book_name char(30) not null,
  book_zname char(20),  
  book_publish char(26),
  enter_num integer, 
  book_jg  money,
  enter_date datetime,
  Book_leave integer,
  kind integer,
foreign key (kind) references kinds(kind)); 
insert into book
values('7-900084-17-7 9787900084170','photoshop6.0','杨龙','中科多脉管体电子',5,27,'2003-10-1 13:45:09',5,10);但执行时会报错,“插入错误: 列名或所提供值的数目与表定义不匹配。”这是为什么呢,感觉语句灭有问题啊,请高手指点

解决方案 »

  1.   

    ,foreign key (kind) references kinds(kind)
    这句话 去掉 就可以了 
    是不是 这个表kinds 没有创建 
    或者 这个表kinds有了 但是 10  这条数据 在 表kinds里没有
      

  2.   

    语法的确没问题,那就要你自己打开设计器,
    亲眼验证一下book这个表是否只有这几列,
    另外检查一下该表是否有触发器,也可能是触发器中列数目不匹配
      

  3.   


    你说的情况只会引起主外键约束错误,不会显示他贴的错误
    而且没哟kinds表主外键关系创建时就会报错,即便可以创建,也不会再验证该约束
      

  4.   

    查一下book表上是否有触发器.
      

  5.   

    先看Table 有没有建成功,有没有报错。若没有在看Insert 语句,一步一步来,这样更好看
      

  6.   

    各位,问题解决了,是这样的,我用的是sql2000,数据库里面原本有一个book表,里面多了一个字段。但是我在上述语句中前面加了“drop table book;”,还是出现了这个错误,所以就来问了下。可能是2000报错机制不太完善,只报了那个错误,谢谢大家!