[前][次][番号順一覧][スレッド一覧]

mysql:6130

From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Wed, 11 Sep 2002 18:02:07 +0900
Subject: [mysql 06130] Re: 他テーブルのデータでアップデート

川合孝典です。

----- Original Message -----
From: "梅村繁実" <umemura@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Wednesday, September 11, 2002 12:52 PM
Subject: [mysql 06113] 他テーブルのデータでアップデート


> はじめまして、梅村と申します 
> MySQL初心者ですがよろしくお願いいたします
(中略)
> update構文でのsetにテーブル、フィールドという指定は使えないという
> ことでしょうか?
(中略)
> ドキュメントを見ましたがupdate構文のところにも書いてなかったように思いま
す、
> 過去ログを参照したところ、一旦新しいテーブルを作ってreplaceする方法が有り> したが,その方法しか無いのでしょうか?
他の方も書いていらっしゃるとおり、とりあえずは、それしかないかなと思います。

ただテーブルを作るといっても一時テーブル(TEMPORARY TABLE)であれば、
コネクション単位に作成されますし、コネクションが切れると自動的に削除され
ますから、通常にテーブルを作ることを考えるよりは、安心して使える思います。

ちなみに
 REPLACE codemaster(ID, EDP_code, sonota)
     SELECT temp.ID, temp.EDP, MST.sonota
    FROM temp INNER JOIN codemaster MST ON temp.ID=MST.ID;
は
ERROR 1093: INSERT TABLE 'codemaster' isn't allowed in FROM table list
となりました。ケチ(ToT)

[ex.]
CREATE TABLE codemaster ( ID int(6) PRIMARY KEY, sonota text,
EDP_Code VARCHAR(8));
CREATE TABLE temp       ( ID int(6) PRIMARY KEY, EDP varchar(8));
insert into codemaster values( 1, 'SONOTA:1', 'MSTER:1');
insert into codemaster values( 2, 'SONOTA:2', 'MSTER:2');
insert into codemaster values( 3, 'SONOTA:3', 'MSTER:3');
insert into temp       values( 2, 'TMP:2');

CREATE TEMPORARY TABLE tmp_code
  SELECT temp.ID, temp.EDP, MST.sonota
 FROM temp INNER JOIN codemaster MST ON temp.ID=MST.ID;

REPLACE codemaster(ID, EDP_code, sonota)
  SELECT * FROM tmp_code;

mysql> SELECT * FROM codemaster;
+----+----------+----------+
| ID | sonota   | EDP_Code |
+----+----------+----------+
|  1 | SONOTA:1 | MSTER:1  |
|  2 | SONOTA:2 | TMP:2    |
|  3 | SONOTA:3 | MSTER:3  |
+----+----------+----------+
3 rows in set (0.01 sec)

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx
   http://member.nifty.ne.jp/hippo2000http://www.hippo2000.info/
「Cマガジン」でPer DBIの連載はじまります。
   http://www.cmagazine.jp/
===================================================


[前][次][番号順一覧][スレッド一覧]

      6113 2002-09-11 12:52 ["梅村繁実" <umemura@] 他テーブルのデータでアップデート        
      6124 2002-09-11 16:22 ┣["Takashi Yamashita" ]                                       
      6126 2002-09-11 17:05 ┃┣[SUGAWARA Hajime <sug]                                     
      6132 2002-09-11 23:44 ┃┃┗[とみたまさひろ <tomm]                                   
      6140 2002-09-13 22:11 ┃┃ ┗["umemura" <shigemi.u]                                 
      6141 2002-09-14 00:54 ┃┃  ┗[ふぁんく <freeml@xxx] 格納データ型について          
      6142 2002-09-14 01:45 ┃┃   ┣[<miffyz@xxxxxxxxxx> ]                             
      6147 2002-09-14 21:37 ┃┃   ┃┗[<freeml@xxxxxxxxxx> ]                           
      6144 2002-09-14 19:26 ┃┃   ┗[とみたまさひろ <tomm]                             
      6133 2002-09-12 09:47 ┃┗["梅村繁実" <umemura@]                                     
      6134 2002-09-12 10:14 ┃ ┗["Takashi Yamashita" ]                                   
      6125 2002-09-11 17:03 ┣[遠藤 俊裕 <endo_t@xx]                                       
      6127 2002-09-11 17:11 ┃┗[遠藤 俊裕 <endo_t@xx]                                     
->    6130 2002-09-11 18:02 ┗["KAWAI,Takanori" <GC]