What potential pitfalls should be considered when moving specific rows from one table to another in PHP, especially when dealing with large datasets?

When moving specific rows from one table to another in PHP, especially with large datasets, potential pitfalls to consider include ensuring data integrity, handling errors gracefully, and optimizing performance to avoid excessive resource consumption. It is crucial to use transactions to maintain consistency and rollback changes if an error occurs during the transfer process.

// Assuming we have a source table 'source_table' and a destination table 'destination_table'

// Start a transaction to ensure data integrity
$pdo->beginTransaction();

try {
    // Move specific rows from source_table to destination_table
    $stmt = $pdo->prepare("INSERT INTO destination_table SELECT * FROM source_table WHERE condition = :value");
    $stmt->execute(['value' => $condition]);

    // Commit the transaction if no errors occurred
    $pdo->commit();
} catch (Exception $e) {
    // Rollback the transaction if an error occurred
    $pdo->rollBack();
    echo "Error: " . $e->getMessage();
}