问题描述
我正在尝试在MysqL中创建表“ Student”,
但是,我无法调试该错误。
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,GRADE CHAR(1),CLASS CHAR(3))' at line 5`
任何帮助将不胜感激。
我希望数据类型和列名是不言自明的。
我浪费了 40分钟的时间来纠正这个可悲的代码
解决方法
varchar
列需要一个长度,如explained in the documentation:
CHAR
和VARCHAR
类型的声明长度表示您要存储的最大字符数。例如,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)
);
,
可能在STREAM VARCHAR中
您必须在VARCHAR中定义字符数。 尝试使用VARCHAR(100)看看是否可行。