php - 将记录移动到新表并相应更新原始 ID

标签 php mysql

我需要使用另一个表中的某些数据创建一个新表,但使用新表中新插入记录的 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/

相关文章:

javascript - 在数据库中存储与使用 PHP 动态创建的表单不同的值?

php - Ruby 命令未在 PHP shell_exec 函数中执行

php - Doctrine DBAL 如果不存在则插入

php - 将 Symfony2 项目从本地主机移动到开发服务器

php - 查询或 PHP 中 mysql 的列总计?

php - while 循环在 php 中不起作用 脚本在 Crontab 中运行

php - CodeIgniter-YouTube-API-Library 注册账号认证

javascript - 如何将包含(图像标签和一些文本)的 HTML 代码或数据转换为图像以供下载

php - Sonata FormMapper 从整数字段添加链接

mysql - 左加入。字段列表中的列 'product_id' 不明确