Recording a table state to a new table in separate rows?

I think what you’re looking to do is extra work here and using views will take out the complexity. If you do need the entry table and the log table to be separate though, I would create a new column in the table where you enter your workout data and make it a “Button” type.

Then for that column button, I would use a formula like this…

RunActions(
AddRow([Workout History], 
  [Workout History].[Column 1], thisRow.Exercise, 
  [Workout History].[Column 2], thisRow.[Set 1], 
  [Workout History].[Column 3], thisRow.[Set 2]
),
DeleteRows(thisRow)
)

You’ll need to add the rest of your columns for the button to update, but this shows the idea.

This formula uses RunActions() which allows you to create a comma separated list of actions for a button to run. So it’s like pushing two buttons instead of one. The first action will add the row and whatever values you include to the new table. The second action will delete the current row. So you can transfer the row to your “Workout History”, then delete it from your entry table.

Then you can create a canvas button that simply pushes the column button. So it will push the button for each row in your table to move all rows over and delete them after they’re moved.