Синтаксические ошибки при создании таблицы в MonetDB

Это сводит меня с ума, и я нахожусь в такой ситуации, когда думаю, что просто упускаю что-то очень очевидное. Мы настраиваем среду MonetDB с помощью SQiurrel. Я думал, что проблема будет заключаться в том, чтобы подключить все это и заставить драйверы работать, но, как оказалось, он работает, и я могу видеть БД во всей ее красе.

У меня есть БД в 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, чтобы сказать мне, почему я упускаю очевидное!


person 1zebedee23    schedule 13.10.2014    source источник


Ответы (1)


Думаю, я разобрался со своей проблемой. Надеюсь, кто-то, кто изучает MonetDB, найдет это и сэкономит свои силы.

Синтаксис для int другой.

Скорее, чем:

int(11)

Вы должны просто ввести:

int

Как только я удалил (11) из каждого int в своем заявлении о создании, он запустился.

person 1zebedee23    schedule 13.10.2014
comment
то же самое с bigint . Также KEY должен быть изменен на первичный ключ - person UberNeo; 31.01.2015