No.4
- 回答日時:
>この値を最初の1から始まる様に値をセットし直すと言う事は出来るの
>でしょうか。あるいは、自分でそれなりの変数をセットするしか方法は
auto_incrementを指定したカラムの初期値は1です
運用によってauto_incrementのカウンタがずれてしまった場合は
初期値を再指示してやればよいです
alter table テーブル auto_increment=1;
なお抜け番ができてしまったときにそれを詰めるような処理は
できないことはないですが、やめた方がいいです
オススメしないSQL
update hoge set id=(select @count:=@count+1 from (select @count:=0) as dummy) order by id;
No.3
- 回答日時:
あ、ごめんなさい、例示したlinesの位置が変
load data infile 'mail.txt' into table mail
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by '\r\n' (mail);
有難う御座います。
正常に動きました。後一つ質問をしたいのですが。と言うのは、これは
mailのテーブルのデータを全削除して新たにload data infileを実行し
た場合は、auto_incrementの値は直前の値から連番をすると思います。
この値を最初の1から始まる様に値をセットし直すと言う事は出来るの
でしょうか。あるいは、自分でそれなりの変数をセットするしか方法は
無いのでしょうか。
済みません。宜しくお願いします。
No.2
- 回答日時:
>ERROR 1261 (01000) at line 2: Row 1 doesn't contain data for all columns
いや、だから「カラムを指定してLoad」するように書きましたよね?
同じ環境はつくれないのでなんとも言えませんが
load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\mail.txt' into table mail lines terminated by '\r\n' (mail);
のようにカラム名を最後に付けるとよいでしょう。
とりえあえずテーブル名とカラム名に同じmailを指定しているのでエラーメッセージの
可読性がわるいとおもいます。
もしエラー対応に自信がないなら、DB名、テーブル名、カラム名などは別名をつけるよう
心がけるとよいかと
また、今回のmail.txtが複数行をまとめて1つのメールとして管理したのであれば
//mail.txt
"テストデータ・・・・
テストデータ・・・・
テストデータ・・・・"
"テストデータ・・・・
テストデータ・・・・
テストデータ・・・・"
"テストデータ・・・・
テストデータ・・・・
テストデータ・・・・"
のようにダブルクォーテーションでくくって
load data infile 'mail.txt' into table mail lines
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
terminated by '\r\n' (mail);
的な、クォーテーション内の改行でデータがわかれないようにしないといけないでしょう
No.1
- 回答日時:
たとえばidにuniqueのnot nullでautoincrementの設定をしてあれば
カラムを指定してloadすればidは連番(のように感じ)になる
厳密にいえば「連番」は難しい、オートインクリメントは連番を作る仕組みではなく
ユニークな数字を設定するものだから、任意に抜け番が発生する
LOAD DATA INFILE 'test.csv' INTO TABLE テーブル(mail)
ただし、textのデータをcsvで流し込むということは複数行を想定している?
場合によってはトラブルのもとかも・・・
有難う御座います。
入力を下記の様に定義しました。
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| mail | text | YES | | NULL | |
| id | int(11) | NO | PRI | NULL | auto_increment |
+-------+---------+------+-----+---------+----------------+
ここで、
load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\mail.txt' into table mail lines terminated by '\r\n'
をした所、下記のエラーが出ます。
ERROR 1261 (01000) at line 2: Row 1 doesn't contain data for all columns
このエラーは、入力にデータが無いと言う事でしょうか。最初から、入
力としてidを用意をしないといけないのでしょうか。
と言う事はload data infileでは連番を作れないと言う事でしょうか。
益々分からなくなって来ました。
テーブル定義に問題があるのでしょうか。宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
inner joinをすると数がおかし...
-
WHERE id = ? について
-
Access パラメータクエリをcsv...
-
エクセルの関数について教えて...
-
PL/SQLの変数について
-
ある条件の最大値+1を初番する...
-
Mysql UPDATE出来ません
-
マイクラPC版のコマンドで効率...
-
VIEWの元のテーブルのindexって...
-
ローカルルーターモードとは
-
複数テーブルのGROUP BY の使い...
-
Data too long for column 'id'...
-
mysqlのload data infileで連番...
-
1テーブル&複数レコードの更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報
済みません、さっきのはカラムを指定していませんでした。今回再度カ
ラムを指定してやりましたが今度は別のエラーが出ました。
ERROR 1064 (42000): You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'lines terminated by
'\r\n'' at line 1
下記を投入しました。
load data infile ... into table mail(mail);
これは、mailがテーブルとフィールドの名前でぶつかっているのが原因
でしょうか。
宜しくお願いします。
load data infileでは、入力のデータが先頭にタブがあると読んでくれません。これは、データの型に問題があるのでしょうか。
先頭がタブであってもそれ以降にはきちんとデータはあります。そのデータを読んではくれません。何が問題なのでしょうか。
追加で申し訳ありませんが。宜しくお願いします。