如果在UserRights表存在在Classes中没有的class_id 就是这个提示用 select class_id from UserRights where class_id not in (select class_id from Classes) 查出不同项你要建FOREIGN KEY 的话 先要在Classes里有这些class_id
我也是从里面直接COPY出来的啊 如果语句有错应该看的出来的
不好意思各位,小弟犯了一个非常低级的错误。 因为做这个数据库的时候,小弟是先统一编写建立所有表和主键的文件,然后就插入数据, 最后才是建立外键和索引。 然而,总管给我数据的时候,就在 表UserRights --------------------------------------------------------------------- user_id int 4 not null // right_id tinyint 1 not null //联合主键; class_id int 4 not null // flag bit 1 null ---------------------------------------------------------------------- 中INSERT INTO UserRights(user_id,right_id,class_id) VALUES (1,1,22); 经我反复查找后发现,数据(1,1,22)中出现一点小错误,应改成(1,22,1),因为在插入数据时,Classes表只是插入一行,class_id 是IDENTITY(1,1)。所以找不到(1,1,22)中的值22与之对应。 经过修改后,一切正常。在此,我衷心的感谢各位大虾的热心帮助,希望大家以后不要跟我一样犯如此低级的错误。 谢谢……
UserRights.class_id 对 Classes.class_id ;外键对主键,没错啊!to pengdali(大力):
从我给的表可以看出,类型是一样的,而且如果类型不一样的话,提示也是说类型不匹配啊
突。该冲突发生于数据库 'tempweb',表 'Classes', column 'class_id'。到底是什么意思啊?
select class_id from UserRights
where class_id not in (select class_id from Classes) 查出不同项你要建FOREIGN KEY 的话 先要在Classes里有这些class_id
如果语句有错应该看的出来的
因为做这个数据库的时候,小弟是先统一编写建立所有表和主键的文件,然后就插入数据,
最后才是建立外键和索引。
然而,总管给我数据的时候,就在
表UserRights
---------------------------------------------------------------------
user_id int 4 not null //
right_id tinyint 1 not null //联合主键;
class_id int 4 not null //
flag bit 1 null
----------------------------------------------------------------------
中INSERT INTO UserRights(user_id,right_id,class_id) VALUES (1,1,22);
经我反复查找后发现,数据(1,1,22)中出现一点小错误,应改成(1,22,1),因为在插入数据时,Classes表只是插入一行,class_id 是IDENTITY(1,1)。所以找不到(1,1,22)中的值22与之对应。
经过修改后,一切正常。在此,我衷心的感谢各位大虾的热心帮助,希望大家以后不要跟我一样犯如此低级的错误。
谢谢……