我需要使用另一个表中的某些数据创建一个新表,但使用新表中新插入记录的 ID 更新原始表。就像这样:
NEW_TABLE
----------------
id
-- other data --
ORIGINAL_TABLE
----------------
id
new_table_id
-- other data --
但是,添加到 new_table 的记录将被分组以消除重复项。因此,这不会是一对一的插入。查询需要更新匹配的记录,而不仅仅是复制的记录。
我可以在一个查询中完成此操作吗?我尝试对original_table进行单独的更新,但它不起作用。
有什么建议吗?
最佳答案
据我所知,您将执行 3 个单独的查询。
$db = new PDO("...");
$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();
$results = $stmt->fetchAll();just iterate o
foreach ($results as $result) {
$stmt = "INSERT INTO new_table (...) VALUES (...)";
$stmt = $pdo->prepare($stmt);
$data = $stmt->execute();
$insert_id = $pdo->lastInsertId();
// Update first table
$stmt = "UPDATE table SET id=:last WHERE id=:id";
$stmt = $pdo->prepare($stmt);
$data = $stmt->execute(array('last' => $insert_id, 'id' => $result['id']));
}
以上是您的工作流程的全局示例。
关于php - 将记录移动到新表并相应更新原始 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565025/