[groonga-dev,01693] Re: GRN_NOT_ENOUGH_SPACEのエラーメッセージの意味と回避方法について

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 8月 27日 (火) 11:14:59 JST


須藤です。

In <CANM+HhcO3y_kjHmJKERK4DQQz=+3DFB****@mail*****>
  "[groonga-dev,01673] Re: GRN_NOT_ENOUGH_SPACEのエラーメッセージの意味と回避方法について" on Fri, 23 Aug 2013 17:09:30 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

>>> 余談ですが、テーブル参照もいろいろいじってみたのですが、SQLで参照元カラム名.参照先カラムという
>>> 指定ができなかったので、現状、mroongaでは、参照先の主キーしか扱えず、TEXT型、LONGTEXT型の
>>> テーブル参照はできないと認識しました。間違ってたら教えてください。
> 
>>す、すみません。ピンとこないので、具体的なスキーマ定義とクエ
>>リーを教えてもらえるとうれしいです!

> 参照先テーブルTagsのtextを参照元テーブルBugsからSQLで実行
> する方法がわかりません。
> 
> CREATE TABLE Tags (
> name VARCHAR(64) PRIMARY KEY,
> text TEXT NOT NULL
> ) DEFAULT CHARSET=utf8
> COLLATE=utf8_bin;
> 
> CREATE TABLE Bugs (
> id INT UNSIGNED PRIMARY KEY,
> tag TEXT COMMENT 'type "Tags"'
> ) DEFAULT CHARSET=utf8;
> 
> INSERT INTO Bugs (id, tag, tag.text) VALUES (1, "Linux","Linux strings.");
> SQLでは、この指定ではテーブル名.カラム名と認識されるので、
> Unknown column 'tag.text' in 'field list'と言われてしまいます。
> 
> あまり、理解できていないので、わかりづらくすいません。

なるほど!
説明ありがとうございます。わかりました!

Tags.textはBugsへのINSERTでは入れることができないのです。別
途、TagsにINSERTしてください。

  INSERT INTO Tags (name, text) VALUES ("Linux", "Linux strings.");
  INSERT INTO Bugs (id, tag) VALUES (1, "Linux");

INSERTする順番はTagsが先でもBugsが先でもどちらでも大丈夫です。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
Back to archive index