我有三个表,如下示意
学生(学号,姓名)
本科生(学号,专业)
研究生(学号,研究方向,导师)
其中学号均为主键,并且学生表的学号分别又为后两表的外键。
但是,在Sql sever中定义关系的时候,我发现这个外键关系是一个双箭头,当本科生和研究生表为空时,学生表中无法插入数据,总是提示冲突。当我把外键约束取消后,在学生和本科生表中输入相同学号的数据后再建立两者外键约束又可以了。可是,由于还有研究生表,所以,本科生表与学生表,研究生表与学生表的数据是不可能完全一样的,只能是它的子集,就没法建立外键约束了。现在的错误让我感觉它们好像是互为外键了。
请问下有人遇到过这种问题吗?这类同为主外键的问题怎么解决?
学生(学号,姓名)
本科生(学号,专业)
研究生(学号,研究方向,导师)
其中学号均为主键,并且学生表的学号分别又为后两表的外键。
但是,在Sql sever中定义关系的时候,我发现这个外键关系是一个双箭头,当本科生和研究生表为空时,学生表中无法插入数据,总是提示冲突。当我把外键约束取消后,在学生和本科生表中输入相同学号的数据后再建立两者外键约束又可以了。可是,由于还有研究生表,所以,本科生表与学生表,研究生表与学生表的数据是不可能完全一样的,只能是它的子集,就没法建立外键约束了。现在的错误让我感觉它们好像是互为外键了。
请问下有人遇到过这种问题吗?这类同为主外键的问题怎么解决?
解决方案 »
- SQL2005 如何一次性删除数据库中的表?
- ■■■如何把本地的数据内容写入到远程服务器的一个临时表里!!!在线等待!!!■■■
- 请问一个SQL语句问题
- 简单问题 请问触发器是否只有INSERT,UPDATA,DELETE三种触发类型?
- 这两种查询语句哪一种更优化啊?(join on 和 where)
- 数据库附加问题
- 非常规记录合并难题,在线恭候高手
- 请教一下,我在SQL Server查询分析器里面执行一个存储过程5秒就可以,怎么用ADO在程序中执行有时候总是在等待,始终不返回,还没有错误返
- SQLServer的数据库恢复问题?
- 我现在要作这样一个查询,急阿,内祥!
- 不存在的列要求显示为0
- 表之间连接问题
学生(学号,姓名)如果学号作为外键学生表输入时学号时
这个学号在
本科生(学号,专业)
研究生(学号,研究方向,导师)
表中同时已存在。
上面是我表述错误,应为:其中学号均为主键,并且后两表学号又为学生表学号的外键。
建议新建一个中间表,保存两表之间的关系。