这个sql脚本在VARCHAR
和EXIT;
给出了错误。我尝试在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;
答案 0 :(得分:1)
这是因为您使用reserved word来创建表格,例如
关键和价值,
尝试为其他人更改此列名称
CREATE TABLE ExtraData (Key VARCHAR(1000),Value
VARCHAR(1000),FeatureKey VARCHAR(100)
/* +++ Foreign key missing here */);
答案 1 :(得分:1)
VALUE
和KEY
是MySQL reserved words,您将其用作列名。
要解决此问题,您可以为这些字段选择不同的名称,也可以在每次在查询中使用它们时将它们括在后面(`)。< / p>
稍后当您想要从表中获取数据时,您必须再次使用引号:CREATE TABLE ExtraData (
`Key` VARCHAR(1000),
`Value` VARCHAR(1000),
FeatureKey VARCHAR(100)
);
SELECT `Key`, `Value` from ExtraData;