MySql One-to-zero to one-to-one I have a table Persons with id as pk and auto increment. Then I have a table Addresses with id as pk and fk to the Persons id. But now person can exist without an address, and I don't want a person to exist without an address. I am looking for a standard way to solve this problem. I am using MySql and InnoDB.
You have many state changes you want to happen in order for your interaction to be considered a success.

This pretty much defines the "atomic" goal of a transactions.

begin; --start the transaction
insert into person values (...);
insert into address values (....);
commit; --finish the transaction


This ensures that if there was an error any where along the way all transaction activity is rolled back.  It's an "all or nothing" operation so you don't end up in an in between state you define as undesirable.