在另一个表的帮助下更新mysql中的列

时间:2012-12-05 13:37:31

标签: mysql

我在数据库中有两个表:

第一张表:学生

Field           Type          Null    Key   Default
id              int(11)       NO      PRI   NULL
class_id        int(11)       NO      PRI   NULL
admission_id    int(11)       NO      PRI   NULL
school_id       int(11)       NO      PRI   NULL
name            varchar(64)   YES           NULL
admin_date      datetime      YES           NULL

第二张表:入场

Field           Type          Null    Key   Default
id              int(11)       NO      PRI   NULL
class_id        int(11)       NO      PRI   1
school_id       int(11)       NO      PRI   NULL
name            varchar(64)   YES           NULL
admin_date      datetime      YES           NULL

现在我要填写Admission表的class_id列,稍后我将其介绍到表中。默认情况下,所有class_id都设置为1,因此需要根据学生进行更新。 我在做什么:

   Update Admission
   set class_id = (select class_id from Students where Students.school_id = Admission.school_id);

我收到一条错误消息:ERROR 1452(23000):无法添加或更新子行:外键约束失败

你能帮助我在我出错的地方或任何其他替代方案填写专栏。 提前致谢

1 个答案:

答案 0 :(得分:3)

试试这个::

Update Admission
inner join Students on (Students.school_id = Admission.school_id)
   set Admission.class_id = Students.class_id