再插入数据的时候,出现mysql Error Code : 1060 Duplicate column name ‘ID’
INSERT INTO itoo_exam.te_teacherassessresult (
courseID,
assessContent,
assessContentId,
AssessScore,
AssessValue,
TeacherId
) SELECT
courseID,
questionContent,
questionContentId,
avgScore,
markScore,
TeacherIDForEval
FROM
(
SELECT
*, AVG(DISTINCT score) AS avgScore
FROM
itoo_exam.te_paperrecord a
WHERE
ISDELETE = '0'
AND IsEval = '1'
GROUP BY
a.TeacherIDForEval,
a.COURSEID,
a.queationtypeid
) c
出现的原因是:
有重复的字段ID了,当时以为是表的有重复字段或是数据中有重复ID数据了
之后我就使用了一条igore语句,忽略了我的ID字段。
INSERT IGNORE INTO itoo_exam.te_teacherassessresult (
courseID,
assessContent,
assessContentId,
AssessScore,
AssessValue,
TeacherId
) SELECT
courseID,
questionContent,
questionContentId,
avgScore,
markScore,
TeacherIDForEval
FROM
(
SELECT
*, AVG(DISTINCT score) AS avgScore
FROM
itoo_exam.te_paperrecord a
WHERE
ISDELETE = '0'
AND IsEval = '1'
GROUP BY
a.TeacherIDForEval,
a.COURSEID,
a.queationtypeid
) c
但是我的忽略ID没有插入生成,所以我用加了与生成UUID的方法,没有使用了ignore关键字。
INSERT IGNORE INTO itoo_exam.te_teacherassessresult (
ID,
courseID,
assessContent,
assessContentId,
AssessScore,
AssessValue,
TeacherId
) SELECT
UUID(),
courseID,
questionContent,
questionContentId,
avgScore,
markScore,
TeacherIDForEval
FROM
(
SELECT
*, AVG(DISTINCT score) AS avgScore
FROM
itoo_exam.te_paperrecord a
WHERE
ISDELETE = '0'
AND IsEval = '1'
GROUP BY
a.TeacherIDForEval,
a.COURSEID,
a.queationtypeid
) c
这样我的数据就可以插入了。