如何 select,更新和插入来自 table 的行到它自己?

How to select, update and insert rows from a table to itself?

我有一个考试table以下列

CLASS_EXAM_ID
CLASS_ID
EXAM_NAME
学期号
重量
FROM_DATE
TO_DATE
EXAM_DATE

其中 CLASS_EXAM_ID 是唯一 ID。

我想复制术语 1 并只创建术语 2。我有这个查询:

INSERT INTO Exam (ExamId, ClassId, Term, TermNo, Weight,Fromdate,Todate,ExamDate)
SELECT 
  'ExamId00001'AS EXPR1, 
  ClassId, 
  'Term 2' AS EXPR2,
  TermNo,
  Weight,
  Fromdate,
  ToDate,
  ExamDate
FROM Exam 
WHERE Term = 'Term 1'

如何为所选的每一行数据更改 ExamId

不清楚 ExamId 字段在此 table 中是如何定义的。如果它是唯一 ID,最好的方法是定义为 auto incremented key field。在这种情况下,只需使用不带 ExamId 和 SQL 的以下 INSERT 语句,服务器将自动插入唯一 ID。

INSERT INTO Exam (ClassId, Term, TermNo, Weight,Fromdate,Todate,ExamDate)
SELECT 
   ClassId, 
  'Term 2' AS EXPR2,
  TermNo,
  Weight,
  Fromdate,
  ToDate,
  ExamDate
FROM Exam 
WHERE Term = 'Term 1'