如何删除使用给定列值无意中插入的行

时间:2015-12-24 14:19:42

标签: mysql delete-row

我是MySQL的初学者。我创建了一个存储过程来从表中插入1,000个随机名称。它有3个字段numcourse_namegradenum是外键 - 因为这是出于测试目的,我只是继续增加num。所以我没有将其标记为PRIMARY KEY / AUTO_INCREMENT。我打电话给程序,它在表格中插入了1000个随机名称。在不知不觉中,我再次打电话给程序,并在一段时间后停止了。然后,在之前的1000个条目之后,该表再获得500个条目。我想删除第二个过程调用后创建的行。

以下是我在存储过程中的陈述:(course_namegrade_details是包含课程名称和成绩的附加表。)

DELIMITER //
CREATE PROCEDURE course_grade(IN name_entries int)
BEGIN
    DECLARE i int DEFAULT 0;
    DECLARE course varchar(20);
    DECLARE crs_grade char(1);

    gradeloop : LOOP
        SELECT name INTO course FROM course_name ORDER BY rand() LIMIT 1;
        SELECT grade INTO crs_grade FROM grade_details ORDER BY rand() LIMIT 1;

        INSERT INTO tbl_grade(fk_int_roll_no,vchr_course,vchr_grade)
        VALUES (i+1,course,crs_grade);

        SET i = i + 1;

        IF (i=name_entries)
            THEN LEAVE gradeloop;
        END IF;
    END LOOP gradeloop;
    SELECT COUNT(*) FROM tbl_grade;
END //
DELIMITER ;

我的桌子就像:

    +----------------+-------------+------------+
    | fk_int_roll_no | vchr_course | vchr_grade |
    +----------------+-------------+------------+
    |              1 | AE          | A          |
    |              2 | MECH        | B          |
    |              3 | EC          | A          |
    |              . | ....        | .          |
    |              . | ....        | .          |
    |           1000 | IT          | E          |
    |              1 | MARINE      | F          |
    |              2 | BIOTECH     | F          |
    |              . | ....        | .          |
    |              . | ....        | .          |
    |              . | ....        | .          |
    |              . | ....        | .          |
    |            500 | RM          | A          |
    +----------------+-------------+------------+

想要删除错误造成的最后1到500行!

0 个答案:

没有答案