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]