0

personsplacesおよびの3 つのテーブルがありperson_placeます。

各場所が多くの人に「お気に入り」にされるのと同じように、各人は多くのお気に入りの場所を持つことができます。

CREATE TABLE persons
(
ID int NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
//some fields omitted
);

CREATE TABLE places 
(
ID int NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
address VARCHAR(50) NOT NULL
//some fields omitted
);

CREATE TABLE person_place 
(
ID int NOT NULL AUTO_INCREMENT,
personID int NOT NULL, //references persons.id
placeID int NOT NULL //references places.id
)

ユーザーが新しい場所を (ある Web ページで) お気に入りに登録したとします。

person_place 行を追加するには、新しい場所を挿入してその ID を取得する方法を教えてください。

ありがとうございました。

4

2 に答える 2

2

挿入をトランザクション内にラップし、LAST_INSERT_ID() を使用して最後に挿入された項目の ID を取得します。

START TRANSACTION;
INSERT INTO places(name,address) VALUES('someplace', '...');
SET @last_inserted_id = LAST_INSERT_ID();

INSERT INTO person_place (personID, placeID) VALUES (1, @last_inserted_id)

COMMIT;
于 2014-09-26T19:19:43.557 に答える
1

MySQL ではLAST_INSERT_ID()関数を使用すると思います。

于 2014-09-26T19:11:24.273 に答える