mysql Error Code : 1060 Duplicate column name 'ID'

再插入数据的时候,出现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

这样我的数据就可以插入了。

你可能感兴趣的:(mysql,数据,————数据库——MSQL,数据库,————数据库——MySQL)