2014-10-13 5 views
3

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

ответ

0

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

Синтаксис для int отличается.

Вместо:

int(11) 

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

int 

После того, как я удалил (11) от каждого Int в моем заявлении создать бежал.

+0

такой же с большойint. Также KEY должен быть изменен на «Основной ключ» – UberNeo

Смежные вопросы