Это сводит меня с ума, и я нахожусь в такой ситуации, когда думаю, что просто упускаю что-то очень очевидное. Мы настраиваем среду 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, чтобы сказать мне, почему я упускаю очевидное!