在SQL中使用Insert时出现错误1064

时间:2015-10-02 05:51:35

标签: mysql sql-insert mysql-error-1064

我试图将一些数据插入到项目的表格中,无论我做什么,我都会收到错误。表是这样的:

    CREATE TABLE StuSchedule (
    StudentID INT PRIMARY KEY NOT NULL,
    1Class VARCHAR (3),
    1Class VARCHAR (3),
    1Class VARCHAR (3),
    1Class VARCHAR (3),
    1Class VARCHAR (3),
    1Class VARCHAR (3)
);

然后当我尝试插入

INSERT INTO StuSchedule (
    StudentID,
    1Class,
    2Class,
    3Class,
    4Class,
    5Class,
    6Class,

)
VALUES
    (
        12345,
        '100',
        '251',
        '302',
        '111',
        '121',
        '300'
    ),
    (
        54321,
        '251',
        '111',
        '100',
        '300',
        '121',
        '302'
    );

它不起作用。有人帮助新手lol

5 个答案:

答案 0 :(得分:0)

第一:

CREATE TABLE StuSchedule (
    StudentID INT PRIMARY KEY NOT NULL,
    1Class VARCHAR (3), 
    1Class VARCHAR (3),-- should be 2Class
    1Class VARCHAR (3),-- should be 3Class
    1Class VARCHAR (3),-- and so on..
    1Class VARCHAR (3),
    1Class VARCHAR (3)
);

第二:

 INSERT INTO StuSchedule (
        StudentID,
        1Class,
        2Class,
        3Class,
        4Class,
        5Class,
        6Class -- remove ","

    )
.....

答案 1 :(得分:0)

如果您确实使用了那个确切的create语句,那么所有列都被命名为" 1Class"

答案 2 :(得分:0)

我将忽略你可能的1级复制粘贴错字。

您应该将StudentID主键设置为自动递增,然后执行不带提及StudentID列的insert语句,将为您生成ID。

答案 3 :(得分:0)

你的问题是你有六次相同的列名,你必须像这样更改你的创建查询:

CREATE TABLE StuSchedule(
    StudentID int PRIMARY KEY NOT NULL, 
    1Class varchar(3), 
    2Class varchar(3), 
    3Class varchar(3), 
    4Class varchar(3),
    5Class varchar(3), 
    6Class varchar(3));

仅仅提供建议,让列名以数字开头并不是一个好习惯。有些数据库可能不允许这样做。

答案 4 :(得分:0)

额外的逗号问题。 使用此查询: -

INSERT INTO StuSchedule (StudentID, 1Class, 2Class, 3Class, 4Class, 5Class, 6Class) 
   VALUES (12345, '100', '251', '302', '111', '121', '300'),
          (54321, '251', '111', '100', '300', '121', '302');