3

これは私を怒らせており、非常に明白な何かを見逃しているに違いないと考えるところまで来ています。SQiurrelでMonetDBの環境を構築しています。課題は、それをすべて配線してドライバーを機能させることだと思いましたが、結局のところ、それは実行されており、DB のすべての栄光を見ることができます。

MySQL に再構築する必要がある DB があるため、コードを生成しました。

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;

唯一の違いは、列とテーブルの名前を変更したことです。これが最初にすべて互換性があるかどうかはわかりませんが、エラーが発生するので、それを回避するだけだと思いました. 1 つ目は、` の使用についてです。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 を知っている新鮮な心が必要なだけで、明らかなことを見逃している理由を教えてくれることを願っています!

4

1 に答える 1

0

私は自分の問題を解決したと思います。MonetDB の使い方を学んでいる人がこれを見つけて、労力を節約できることを願っています。

int の構文は異なります。

それよりも:

int(11)

次のように入力するだけです。

int

create ステートメントの各 int から (11) を削除すると、実行されました。

于 2014-10-13T14:50:44.200 に答える