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