这个简单的MySQL CREATE TABLE语句有什么问题?

时间:2013-06-18 20:38:46

标签: mysql

创建表时遇到此错误。如何解决?

SQL查询:

CREATE TABLE Measurement(

MeasurementID NOT NULL ,
MeasurementTypeID INTEGER,
MeasurementNameCHAR( 100 ) ,
SemanticModelInfrastructureID INTEGER,
AddressCHAR( 150 ) ,
PRIMARY BOOL,
DerivedCalcCHAR( 255 ) ,
PRIMARY KEY ( MeasurementID ) ,
KEY ( MeasurementTypeID ) ,
KEY ( SemanticModelInfrastructureID )
);
MySQL说:

#1064 - 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 'NOT NULL,
    MeasurementTypeID INTEGER,
    MeasurementName CHAR(100),
    SemanticMo' at line 3 

3 个答案:

答案 0 :(得分:2)

MeasurementID没有类型;试试MeasurementID INTEGER NOT NULL

答案 1 :(得分:1)

您在这里缺少数据类型:

MeasurementID NOT NULL

尝试:

MeasurementID INTEGER NOT NULL

NOT NULL只是一个阻止NULL值存储在列中的约束。您仍然需要声明所需的数据类型,如INTEGER或CHAR。

答案 2 :(得分:1)

有几个错误:

您需要在MeasurementID / null声明之前提供not null数据类型

MeasurementID int unsigned not null auto_increment,

您在CHAR之前的几行内缺少空格。

PRIMARY是一个保留字,需要用背景包围(在PRIMARY BOOL行上)