从MySQL表复制一行,但创建一个新的自动ID并更新2个其他字段

时间:2013-03-25 21:29:06

标签: php mysql

我正在使用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个左右的列,因此列出它们可能很麻烦。

0 个答案:

没有答案