2

これは、サイトでの私の最初の投稿です。私はmysqlとphpの初心者なので、間違いを許して親切に指摘してください。雇用の詳細を保存するテーブルがあります。

table_hiring 採用
ID int(20) AUTOINCREMENT => (主キー);
雇用者名 varchar(80);
採用日 bigint(20);
... ... ...

ツールとそのレンタル価格を格納する別のテーブルがあります。

table_tools
tool_id int(10)AUTOINCREMENT => (主キー);
tool_description varchar(100);
tool_price double;

各雇用要求は雇用テーブルに保存されます。私の問題は、各雇用リクエストに複数のツールを含めることができることです(これはグラウンド雇用です。したがって、雇用者はハードルセット、ショットプットセット、ジャベリンセットなどをリクエストできます)。1 つのフィールドに複数の値を格納するという問題に困惑しました。私はいくつかの調査を行い、別のテーブルを持つことにしました

table_tool_hire
tool_hire_id() => (table_hiring の主キー);
tool_id() => (table_tools の主キー);
tool_hire_date bigint(20);

問題は、雇用要求があるたびに、雇用者の要求に従って、table_hiring と table_tool_hire を 1 つのクエリに入力する必要があり、雇用 ID が両方のテーブルで一致する必要があることです。

値を table_hiring に挿入し、同時にその雇用の自動インクリメントされた ID 値を取得して table_tool_hire テーブルに更新するにはどうすればよいですか?? 助けてください...よろしくお願いします...

4

2 に答える 2

1

PHP の場合、これはmysql_insert_id(). .NET については、こちらをご覧ください。

于 2012-06-01T13:31:16.323 に答える
0

このフォーラムをご覧ください。

トランザクション内のすべての挿入 ID を取得する

変数を使用して、最後の挿入 ID を格納できます。

INSERT INTO messages(`message`) VALUES ('message1');
@message1:=last_insert_id();
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagfoo1');
@message2:=last_insert_id();

あなたが作るなら

select @message1;

結果は 1234 になるので、

@message1 => 1234
@message2 => 1235
于 2012-06-01T13:32:22.367 に答える