我有一个名为exams的表,其中包含列名和值
Id(PK)- ExamName - GradeId - TermId
155 - Maths - 22 - 15
156 - English - 23 - 15
我想要做的是:选择id = 155的行,将等级Id更新为32,将术语ID更新为25并插入到同一个表中。由于Id是主键,Id也会改变。 所以新插入的行将是:
157 - Maths - 32 - 25
是否有人可以帮助我。 提前谢谢。
答案 0 :(得分:1)
您可以通过以下方式更新现有记录:
update exams set GradeId = 32, TermId=25 where Id=155
或者,您可以使用下面的值插入新记录,但更新会更加优先
insert into exams values (157,'Maths',32,25)
如果主键是自动递增,则可以使用:
insert into exams (ExamName,GradeId,TermId) values ('Maths',32,25)
永远不要更新主键,它总是会产生问题!
编辑:
要从另一个表格向表格插入记录,请尝试:
INSERT INTO tablename (ExamName,GradeId,TermId)
SELECT ExamName,GradeId=32,TermID=25 --don't know where the numbers are coming from, that's why adding manually here
FROM examps
WHERE Id = 155
答案 1 :(得分:1)
好像你想要INSERT INTO.. SELECT
INSERT INTO exams (ExamName, GradeId, TermId)
SELECT ExamName, 32, 25
FROM exams
WHERE Id = 155
如果您计划以自动方式重复使用此功能,则需要将硬编码值(32, 25, 155
)替换为您用于获取这些值的任何逻辑。