为什么我的SQL创建出现错误?

问题描述:

什么是用下面的SQL语句的问题:为什么我的SQL创建出现错误?

create table teamstats (name varchar(10) not null,pos varchar(3) not null,ab numeric(3) not null,hits numberic(4) not null,walks varchar(5) not null,singles varchar(7) not null,doubles varchar7) not null,triples varchar(7) not null,hr numeric(2) not null,so varchar(2) not null);

,我也得到:

错误1064(42000):你在你的SQL语法错误;检查 手册,对应于您的MySQL服务器版本的右边 语法使用附近'numberic(4)不为null,不使用步行varchar(5)l,singles varchar(7)not null,

+0

'numberic'不是数据类型。 – 2013-02-13 18:55:51

您的SQL两个错误:

  1. 命中数字小(4)不为null =>数字小是不是有效的数据键入

  2. 双打varchar7)NOT NULL =>您忘了VARCHAR开括号

这是正确的语法:

create table teamstats 
(
    name varchar(10) not null, 
    pos varchar(3) not null, 
    ab numeric(3) not null, 
    hits numeric(4) not null, 
    walks varchar(5) not null, 
    singles varchar(7) not null, 
    doubles varchar(7) not null, 
    triples varchar(7) not null, 
    hr numeric(2) not null, 
    so varchar(2) not null 
); 

这里的SQL小提琴:http://sqlfiddle.com/#!2/261351

+0

该表中的关键是什么? – Cratylus 2013-02-13 18:57:58

+0

实际上没有为表格定义的键。 – 2013-02-13 19:00:01

错字#1

doubles varchar7) 

应该

doubles varchar(7) 

错字#2

numberic 

应该是

numeric 

也许改变numbericnumeric

numeric拼错作为numberic;这可以防止MySQL将其作为数据类型进行检测,并且不知道如何继续。你也忘了在双打栏打开的括号:

doubles varchar(7)