PHPコードを使用しています
$sql = "SELECT * FROM $table LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
for ($i = 1; $i < mysql_num_fields($res); $i++) {
$col_names .= mysql_field_name($res, $i).", ";
}
$col_names = substr($col_names, 0, -2);
$sql = "INSERT INTO $table (" . $col_names . ") SELECT " . $col_names . " FROM $table WHERE id = $id";
$res = mysql_query($sql) or die(mysql_error());
$new_id = mysql_insert_id();
単一のレコードを複製し、挿入時に新しい PK を生成します。これはうまく機能していますが、新しく作成されたレコードに関する新しい情報で3つのフィールドを更新する必要もあり、クエリの実行後に更新ステートメントを使用するのが最善の方法であるかどうか、またはそれを行う方法があるかどうかを確認したかっただけです最初の INSERT クエリ? テーブルの列は将来変更される予定ですが、現在 20 列ほどあるため、それらをリストするのは面倒な場合があります。