アプリ版:「スタンプのみでお礼する」機能のリリースについて

WindowsXPsp2,MySQL4.0.23です。
雑誌の記事を参考に以下のようなsqlファイルを作成し、sourceコマンドで流し込みをしました。流し込むファイルの内容も下記に示します。
[sqlファイル]
use docsdb;
drop table titletb;
create table titletb (
tid int unsigned auto_increment primary key,
tyear year not null,
tmonth tinyint not null,
title1 varchar(100) not null,
title2 varchar(100),
title3 varchar(100)
);
grant select,insert,update,delete on docsdb.titletb to docsuser@localhost identified by 'password';
load data infile 'datafile' into table titletb;

[datafile](スペースはタブ文字です)
2004 1 ああああああ ううううう
2004 2 いいいいいい ううううう

これによって作成したテーブルを、
select * from titletb;
とすると結果が崩れて表示されてしまうのです。
格納されている情報に問題はなく、カラムごとに区切って表示させればちゃんと期待通りに格納されています。
何かやり方を間違っているのでしょうか?
普通に崩れずに表示させるにはどうすればよいのでしょうか?
それと、sourceコマンドで流し込んだ際に、Warnings:4と出るのですがこれは問題ないのでしょうか?
よろしくお願いします。

A 回答 (2件)

[datafile](スペースはタブ文字です)


2004 1 ああああああ ううううう \N /n
2004 2 いいいいいい ううううう \N /n

としてください。
書き込みでは反映されないようですが、各行の先頭にはタブをうっています。(もしかしてあなたもされているかも)

・理由
カラムとデータが対応していません。
IDは何も記入しなくていいのでタブのみうってください。
(反映されていないだけでしたらすみません)
title3はNULLとなるため\Nとしましょう。
改行は/nとしておくといいでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。おっしゃるやり方で無事崩れずに表示されました。とても感謝しております。本当にありがとうございました。
おっしゃるとおり先頭にはタブを打っております。どうやらここでは先頭のスペースは投稿時に削られるのですね。
ということは今回の私のトラブルはカラムとデータが対応していないのではなくて空白のフィールドを\nとしなかったことによるものなのでしょうか?
それと、改行を/nとするということですが、今回のように外部ファイルからデータを流し込む際のデータファイルは、データの入力の際エンターキーによる改行を行わずにその部分に/nを入れるということでよろしいでしょうか?

お礼日時:2005/01/24 03:47

#1です。


普通に表示できてよかったですね。頑張ってください。

>ということは今回の私のトラブルはカラムとデータが対応していないのではなくて空白のフィールドを\nとしなかったことによるものなのでしょうか?

tid,tyear,tmonth,title1,title2,title3の6項目に対して1行に5項目しか入っていなかったことが言いたかったことです。

>それと、改行を/nとするということですが、今回のように外部ファイルからデータを流し込む際のデータファイルは、データの入力の際エンターキーによる改行を行わずにその部分に/nを入れるということでよろしいでしょうか?

load data infile 'datafile' into table titletb以降にタブに変わるもの・改行に使う記号を指定できますが、デフォルトではタブで区切り・/nで改行となります。“Windowsでは/r/nにしましょう。”といわれることもあります。何も無くてもいいですが、Warningsの数が増えます。
    • good
    • 0
この回答へのお礼

理解できました。
わざわざお答えいただきありがとうございました。

お礼日時:2005/01/25 09:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す