1

私の PHP/MySQL アプリケーションでは、テーブルにデータを挿入する次のクエリがあります。

INSERT INTO `my_table` VALUES ('','$value1','$value2').

最初の値は、自動インクリメントされた主キーです。

さて、私がやりたいことは、この挿入操作の直後に、エントリの がとして機能する別のテーブルmy_table2にデータを入力したいということです。primary keymy_tableforeign key

トリガーを使用する必要がありますか、またはテーブルの最後のエントリの主キーを取得する方法はありますか? 必要なコードを答えてください。

私はmysqliを使用しており、この特定の処理をデータベース側で維持したいと考えています。

4

3 に答える 3

1

あなたが試すことができます:

 SELECT LAST_INSERT_ID();
于 2013-10-19T07:53:56.883 に答える
0

insert ステートメントの後に、別のクエリを起動できます。

SELECT LAST_INSERT_ID();

これにより、ID を含む 1 つの列を含む 1 つの行が返されます。

ドキュメント: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

mysql> SELECT LAST_INSERT_ID();
        -> 195

これは接続ごとに機能するため、別のスレッドがテーブルに書き込みを行っても問題はありません。SELECT は、挿入クエリの実行後に「RIGHT AFTER」/「次のクエリとして」実行する必要があります

例:

$dbConnection = MyMagic::getMeTheDatabase("please");
$oSomeFunkyCode->createThatOneRowInTheDatabase($dbConnection);

$result = $dbConnection->query("SELECT LAST_INSERT_ID();");
// ... fetch that one value and you are good to go
于 2013-10-19T07:54:12.423 に答える