日期:2014-05-17  浏览次数:20516 次

求助关于一条SQL语句的问题
有如下语句

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);

但执行时会报错,“插入错误: 列名或所提供值的数目与表定义不匹配。”这是为什么呢,感觉语句灭有问题啊,请高手指点

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

------解决方案--------------------
语法的确没问题,那就要你自己打开设计器,
亲眼验证一下book这个表是否只有这几列,
另外检查一下该表是否有触发器,也可能是触发器中列数目不匹配
------解决方案--------------------
引用:
,foreign key (kind) references kinds(kind)
这句话 去掉 就可以了 
是不是 这个表kinds 没有创建 
或者 这个表kinds有了 但是 10  这条数据 在 表kinds里没有


你说的情况只会引起主外键约束错误,不会显示他贴的错误
而且没哟kinds表主外键关系创建时就会报错,即便可以创建,也不会再验证该约束
------解决方案--------------------
查一下book表上是否有触发器.
------解决方案--------------------
我觉得是触发器和级联的可能性比较大