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

mysql:4937

From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Thu, 17 Jan 2002 09:33:23 +0900
Subject: [mysql 04937] Re: 複数テーブルにおけるデータの insert の方法

川合孝典です。

----- Original Message -----
From: <s1atirvine@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Wednesday, January 16, 2002 1:43 PM
Subject: [mysql 04933] 複数テーブルにおけるデータの insertの方法


(中略)
> 【質問】
> 上記の様な状況において、顧客からの受注情報をinsertする場合
(中略)
>  [顧客情報テーブル],[受注情報テーブル]同時に、
>  insertできる方法は無いのだろうか?
> とも思っています。
(以下略)
#業務としてこういうデータでいいかどうかはとにかくとして。

これに関しては
> 「別々に登録する以外方法はないよ!」
でしょう。
マニュアルのINSERTの構文を見ても
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Reference.html#INSERT

テーブル名は1つしか指定できませんしね。

mysqlユーティリティからであれば、以下のようなSQLが利用できる
でしょう。Perl/DBIでも同じSQLが使えますが、それよりは顧客
テーブルのデータを取得した後、データベースハンドルの
$dbh->{'mysql_insertid'};を取っておいて使うでしょう。
#PHPではmysql_insert_idを使って取り出せばよいのかしらん?

create table tbl_customer (
  id bigint unsigned not null auto_increment primary key,
  name varchar(30),
  addr varchar(30)
);
create table tbl_order (
  id bigint unsigned not null auto_increment primary key,
   customer bigint unsigned,
 item bigint unsigned,
  qty integer unsigned);

insert into tbl_customer values (null, 'NO1', 'ADDR1');
insert into tbl_order values
    (null, LAST_INSERT_ID(), 1, 1),
    (null, LAST_INSERT_ID(), 2, 2),
    (null, LAST_INSERT_ID(), 3, 3);
insert into tbl_customer values (null, 'NO2', 'ADDR2');
insert into tbl_order values
    (null, LAST_INSERT_ID(), 11, 1),
    (null, LAST_INSERT_ID(), 12, 2);

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx
   http://member.nifty.ne.jp/hippo2000
   http://www.hippo2000.net/
===================================================


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

      4933 2002-01-16 13:43 [<s1atirvine@xxxxxxxx] 複数テーブルにおけるデータの insert の方法
->    4937 2002-01-17 09:33 ┗["KAWAI,Takanori" <GC]                                       
      4973 2002-01-18 15:07  ┗[<s1atirvine@xxxxxxxx]