varchar上的sql脚本错误并在mysql下退出

时间:2010-10-22 02:50:04

标签: mysql

这个sql脚本在VARCHAREXIT;给出了错误。我尝试在MySQL控制台下运行它。我可以知道如何解决这个问题吗?

CREATE TABLE Solution (
SolutionKey    INT NOT NULL, /* PRIMARY KEY (SolutionKey), */
FeatureKey    VARCHAR(100),    /* +++ Foreign key missing here */
Value    VARCHAR(4000)
);


CREATE TABLE InactiveContext (
CaseKey    INT NOT NULL,     /* PRIMARY KEY (CaseKey), */
Context    VARCHAR(100)
);

CREATE TABLE Class (
FeatureKey    VARCHAR(100),   /* +++ Foreign key missing here */
ClassName    VARCHAR(1000)
);


CREATE TABLE ExtraData (
Key    VARCHAR(1000),
Value    VARCHAR(1000),
FeatureKey   VARCHAR(100)    /* +++ Foreign key missing here */
);


CREATE TABLE ProblemCCBRFeatureSpec (
FeatureKey    VARCHAR(100),    /* +++ Foreign key missing here */
Question    VARCHAR(1000)
);


CREATE TABLE HashMap (
CollectionID    INT,       /* +++ Foreign key missing here */
Key    VARCHAR(1000),
Value    VARCHAR(1000)
);


CREATE TABLE HashSet (
CollectionID    INT,       /* +++ Foreign key missing here */
Value    VARCHAR(1000)
);


CREATE TABLE Constants (
ConstantName    VARCHAR(1000),    /* +++ Must be a primary key ??? */
ConstantValue    VARCHAR(4000)
);

COMMIT;
EXIT;

2 个答案:

答案 0 :(得分:1)

这是因为您使用reserved word来创建表格,例如

关键和价值,

尝试为其他人更改此列名称

    CREATE TABLE ExtraData (Key    VARCHAR(1000),Value  
  VARCHAR(1000),FeatureKey   VARCHAR(100)  
  /* +++ Foreign key missing here */);

答案 1 :(得分:1)

VALUEKEY是MySQL reserved words,您将其用作列名。

要解决此问题,您可以为这些字段选择不同的名称,也可以在每次在查询中使用它们时将它们括在后面(`。< / p>

CREATE TABLE ExtraData (
`Key`    VARCHAR(1000),
`Value`    VARCHAR(1000),
FeatureKey   VARCHAR(100)  
);

稍后当您想要从表中获取数据时,您必须再次使用引号:

SELECT `Key`, `Value` from ExtraData;