2 u010850205 u010850205 于 2013.11.13 16:17 提问

当我删除学生表中的信息时,提示该学生在老师表中存在.

tab_teacher (老师表) t_id t_name t_s_id
{001,王老师,100}
{002,李老师,101}
{003,李老师,102}

tab_student (学生表) s_id s_name
{100,张三}
{104,张四}

{100,张三}我删除这条信息的时候,提示该学生老师表中存在.求代码

3个回答

jerryfazhi
jerryfazhi   2013.11.13 17:20

删之前加个判断 。。
1先查询教师表有没有数据(select * from teacher where sid=(select sid from student where sname='张三')),有数据返回失败 js alert错误
2没有数据 delete from student where sname='张三' 。

jerryfazhi
jerryfazhi 根据ID更简单了。。select * from teacher where sid=学生id.
大约 4 年之前 回复
u010850205
u010850205 是根据Id的,不是名字,有思路,就是不知道业务代码
大约 4 年之前 回复
u012890686
u012890686   2013.11.19 20:29

你的数据库中的表的设计有问题,关于老师和学生的关系是属于多对多的关系,一个老师可以对应多个学生,一个学生也可以对应多个老师的!所以,你的老师表内的学生外键是不应该存在的,关于学生和老师是应该创建三个表的。老师表内去除学生id,学生表依旧,再设置一个中间表,表内两个字段,分别为老师的id和学生的id。删除的时候就很简单了。以后设计表的时候可以先想一下对应关系,望采纳!!

u013216910
u013216910   2013.12.19 18:52

这个应该是你表的问题,数据库不能识别你的t-s-id=100到底代表的是学生还是老师,因为你的表中张三的编号是100,而在老师表中也出现了100,工具无法识别

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!