【问题标题】:Table creation in MySQL results in a vague errorMySQL中的表创建导致模糊错误
【发布时间】:2020-09-14 09:23:53
【问题描述】:

我正在尝试在 MySQL 中创建一个表“学生”,
但是,我无法调试错误。

CREATE TABLE STUDENT (
-> No INT NOT NULL,
-> Name VARCHAR(100) NOT NULL,
-> STIPEND DECIMAL(5,2),
-> STREAM VARCHAR,
-> AVGMARKS DECIMAL(3,1),
-> GRADE CHAR(1),
-> CLASS CHAR(3));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near AVGMARKS DECIMAL(3,1), GRADE CHAR(1), CLASS CHAR(3))' at line 5`

任何帮助将不胜感激。
我希望数据类型和列名是不言自明的。
我已经浪费了 40 分钟来纠正这个可悲的代码

【问题讨论】:

    标签: mysql sql string create-table


    【解决方案1】:

    varchar 列需要一个长度,如explained in the documentation

    CHARVARCHAR 类型的声明长度表示您要存储的最大字符数。例如,CHAR(30) 最多可容纳 30 个字符。

    考虑:

    CREATE TABLE STUDENT (
        No INT NOT NULL,
        Name VARCHAR(100) NOT NULL,
        STIPEND DECIMAL(5,2),
        STREAM VARCHAR(10),     --> here
        AVGMARKS DECIMAL(3,1),
        GRADE CHAR(1),
        CLASS CHAR(3)
    );
    

    【讨论】:

      【解决方案2】:

      它可能在 STREAM VARCHAR 中

      您必须在 VARCHAR 中定义字符数。 试试 VARCHAR(100) 看看这是否有效。

      【讨论】:

        猜你喜欢
        • 2011-10-05
        • 1970-01-01
        • 1970-01-01
        • 2015-02-14
        • 2021-10-15
        • 2018-12-22
        • 2013-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多