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

mysql:12962

From: 忠犬 KEN <忠犬 KEN <ken_ken_1962@xxxxxxxxxx>>
Date: Sat, 29 Apr 2006 13:32:53 +0900
Subject: [mysql 12962] Re: チュートリアルの外部キーの使用について

chukenと申します。

>「標準MySQL」なる書籍を読みながら、自分のためのデータベースを作るべくMySQL
チュー
>トリアルを試していたんですが、3.6.6外部キーの使用のところでつまずいていま
す。
>http://dev.mysql.com/doc/refman/4.1/ja/example-foreign-keys.html
>のとおり、テーブルを作ったのですが、
>+++++++++++++++++++++++++++
>mysql> select * from person;
>+----+--------------------+
>| id | name               |
>+----+--------------------+
>|  1 | Antonio Paz        |
>|  2 | Lillana Angelovska |
>+----+--------------------+
>2 rows in set (0.00 sec)
>
>mysql> select * from shirt;
>+----+---------+--------+-------+
>| id | style   | color  | owner |
>+----+---------+--------+-------+
>|  1 | polo    | blue   |     1 |
>|  2 | dress   | white  |     1 |
>|  3 | t-shirt | blue   |     2 |
>|  4 | dress   | orange |     2 |
>|  5 | polo    | red    |     4 |
>|  6 | dress   | blue   |     5 |
>|  7 | t-shirt | white  |     6 |
>+----+---------+--------+-------+
>7 rows in set (0.00 sec)
>++++++++++++++++++++++++++++++++++
>テーブルshirtのownerは、personのid 1,2しかないはずですが、チュートリアルの
ように
>なりません。
>LAST_INSERT_ID()では、personのidを返して欲しいのですが、shirtのレコードを挿
入し
>たときのidが返ってきているようなのです。何か注意する点がありましたら教えて
いただ
>けないでしょうか。

結論から言うと、マニュアルの例題が間違っています。

バージョン5の英文マニュアルでは、例題が修正されています。
http://dev.mysql.com/doc/refman/5.0/en/example-foreign-keys.html

person表にinsertした後、変数@lastにLAST_INSERT_ID()を退避し、
shirt表のinsert時に@lastを利用するように修正されています。

INSERT INTO person VALUES (NULL, 'Antonio Paz');

SELECT @last := LAST_INSERT_ID();

INSERT INTO shirt VALUES
(NULL, 'polo', 'blue', @last),
(NULL, 'dress', 'white', @last),
(NULL, 't-shirt', 'blue', @last);

INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');

SELECT @last := LAST_INSERT_ID();

INSERT INTO shirt VALUES
(NULL, 'dress', 'orange', @last),
(NULL, 'polo', 'red', @last),
(NULL, 'dress', 'blue', @last),
(NULL, 't-shirt', 'white', @last);



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

     12960 2006-04-29 10:41 [wada toshiki <wada-t] チュートリアルの外部キーの使用について  
->   12962 2006-04-29 13:32 ┗[忠犬 KEN <ken_ken_19]                                       
     12963 2006-04-29 15:17  ┗[wada toshiki <wada-t] Re: [解決]チュートリアルの外部キーの使用について