1

まず、必要なものを入力します。

したがって、1つのテーブルがあり、各行は自動的に新しいIDを取得し、そこで作成された新しい行ごとに、そのIDを別のテーブルの特定の列に配置する必要があります。

データベース構造:イベント

(これは私がIDをコピーしたいテーブルです)

EventID | より多くの列

-

データベース構造:結合可能(これは「EventID」をコピーしたいテーブルです)

EventID | より多くの列。

したがって、イベントがテーブル「event」に配置されたときに、EventIDも自動的に結合可能に配置されるようにします。

4

1 に答える 1

2

最後に挿入された自動生成IDを返す関数を使用します。

MySqlでは、SQL Server ではSCOPE_IDENTITY 、IDENT_CURRENT@@IDENTITYです。LAST_INSERT_ID()

たとえば、MySqlでは次のようなことができます

INSERT INTO event (column1,column2...) VALUES (...); 
SET @last_event_id = LAST_INSERT_ID();
INSERT INTO jointable (EventID, column1, column2...) VALUES (@last_event_id, ...);

更新: クライアント(php + mysqli)からそれを行うには、mysqli_insert_id()

その場合のコードは次のようになります

$db = mysqli_connect(...);
...
$query = "INSERT INTO event (column1, column2...) VALUES (...)";
mysql_query($query);

$last_event_id = mysqli_insert_id($db);

$query = "INSERT INTO jointable (EventID, column1, column2...) VALUES ($last_event_id, ...)";
mysql_query($query);
于 2013-02-11T08:19:28.000 に答える