3

This is driving me mad and I'm at the point where I'm thinking I must just be missing something very obvious. We are setting up a MonetDB environment with SQiurrel. I though the challenge would be wiring that all up and getting the drivers to work, but as it turns out that is running and I can see the DB in all its glory.

I have a DB in MySQL that I need to rebuild so I just generated the code:

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;

The only difference is that I've changed the column and table names. I'm not sure if this is all compatible for a start but I figured I would just work my way around it as it chucked errors. The first was about using a `. MonetDB seems to not like you.

I removed those and now I get:

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 

For the "key" column I'm also getting the int(11) turn red and tell me I have an "EOF Expected"

If I quickly type out my own CREATE TABLE statement I can create a tables with a type varchar. As soon as I add in an int type it goes mad again.

So for example I just created this table in MonetDB:

CREATE TABLE "some_database"."some_table"
(
something varchar(10),
something2 varchar(10)
); 

That worked fine. As soon as I add an int type:

CREATE TABLE "some_database"."some_table"
(
something varchar(10),
something2 varchar(10),
something3 int(10)
);

It goes a bit mental again:

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

So my question is have I set something up wrong? MonetDB seems to be running well and I can explore everything as one would expect in SQiurrel. I can create basic tables with varchar but as soon as I bring in an int the computer says no. I also don't understand what EOF means? I assumed it was expecting an , but it has that?

Thanks in advance. I'm hoping I just need a fresh mind who knows MonetDB to tell me why I'm missing the obvious!

1zebedee23
  • 110
  • 7

1 Answers1

0

I think I've worked out my issue. Hopefully someone who is learning their way around MonetDB may find this and save themselves some effort.

The syntax for an int is different.

Rather than:

int(11)

You must just type:

int

Once I removed the (11) from each int in my create statement it ran.

1zebedee23
  • 110
  • 7