这让我发疯,我正处于我认为我必须错过一些非常明显的东西的地步。我们正在使用 SQiurrel 设置 MonetDB 环境。我虽然挑战在于将所有这些连接起来并让驱动程序工作,但事实证明它正在运行,我可以看到数据库的所有荣耀。
我在 MySQL 中有一个需要重建的数据库,所以我只生成了代码:
CREATE TABLE "some_database"."some_table" (
key int(11) NOT NULL AUTO_INCREMENT,
column_1 varchar(10) DEFAULT NULL,
column_2 varchar(10) DEFAULT NULL,
column_3 varchar(10) DEFAULT NULL,
column_4 varchar(10) DEFAULT NULL,
column_5 varchar(10) DEFAULT NULL,
column_6 int(11) DEFAULT NULL,
column_7 decimal(10,2) DEFAULT NULL,
column_8 decimal(10,2) DEFAULT NULL,
column_9 int(11) DEFAULT NULL,
PRIMARY KEY (key)
) ENGINE=InnoDB AUTO_INCREMENT=20189170 DEFAULT CHARSET=utf8;
唯一的区别是我更改了列名和表名。我不确定这是否一开始就兼容,但我想我会解决它,因为它会抛出错误。第一个是关于使用`。MonetDB 似乎不喜欢你。
我删除了这些,现在我得到了:
Error: syntax error, unexpected '(', expecting ')' or ',' in: "create table "some_database"."some_table" (
SQLState: 42000
ErrorCode: 0
Error: fact_key int("
SQLState: 22000
ErrorCode: 0
对于“关键”列,我也将 int(11) 变为红色并告诉我我有一个“预期 EOF”
如果我快速输入我自己的 CREATE TABLE 语句,我可以创建一个类型为 varchar 的表。一旦我添加一个 int 类型,它就会再次发疯。
例如,我刚刚在 MonetDB 中创建了这个表:
CREATE TABLE "some_database"."some_table"
(
something varchar(10),
something2 varchar(10)
);
那工作得很好。只要我添加一个 int 类型:
CREATE TABLE "some_database"."some_table"
(
something varchar(10),
something2 varchar(10),
something3 int(10)
);
又有点精神了:
Error: syntax error, unexpected '(', expecting ')' or ',' in: "create table "some_database"."some_table"
SQLState: 42000
ErrorCode: 0
Error: (
SQLState: 22000
ErrorCode: 0
Error: something varchar(10),
SQLState: 22000
ErrorCode: 0
Error: something2 varchar(10),
SQLState: 22000
ErrorCode: 0
Error: something3 int("
SQLState: 22000
ErrorCode: 0
所以我的问题是我设置错了吗?MonetDB 似乎运行良好,我可以像在 SQiurrel 中所期望的那样探索一切。我可以使用 varchar 创建基本表,但只要我输入一个 int,计算机就会拒绝。我也不明白EOF是什么意思?我以为它期待一个,但它有吗?
提前致谢。我希望我只需要一个了解 MonetDB 的新思维来告诉我为什么我错过了显而易见的事情!