【发布时间】:2012-02-27 19:35:09
【问题描述】:
给定两个表:
`Students`
id int, primary, auto-increment
sid int
fname varchar
lname varchar
`Registration`
id int, primary, auto-increment
student_sid int
coursenum int
有没有办法在Students 的新列中填充他们注册的每个课程的课程编号?因此,每次为给定的 sid 添加第二个 coursenum 时,students.id 将自动递增,保留主键,同时将带有 sid、fname、lname 和新 coursenum 的新行添加到表中。
这有点像 INSERT...IF DUPLICATE UPDATE 的向后版本。我想要更新...如果重复插入。
【问题讨论】:
-
这似乎是一件非常奇怪的事情。可能要重新考虑您的数据库设计。我希望您在学生表中只有一个 ID 字段(称为 studentID),每个学生一条记录。注册表可以有自己的 ID 字段,但似乎没有必要。它应该有一个 studentID 字段和一个 coursenum 字段。每门课程每个学生一个条目,因此如果三个学生每人参加四门课程,则学生表中将有 3 个条目,而注册表中将有 12 个条目。
-
此外,您可能希望使用 courseID 而不是 coursenum,并拥有另一个关系表,其中包含有关每门课程的信息(名称、编号、教授、学分等)。
-
同意!我无法控制数据库设计,也无法控制需要这些表中的这些字段的应用程序。我只是想找到一种方法来使用查询而不是手动填充数据。
-
你会用PHP吗?
标签: mysql sql sql-update sql-insert