Here is a table I made:
mysql> show create table notes;
+-------+----------------------------------------------------+
| Table | Create Table
The InnoDB engine should generally (unless you have a fulltext index for instance) be preferred, as InnoDB allows transactions, foreign keys, and row locking, for instance.
On a test database, perform
ALTER TABLE notes ENGINE = InnoDB;
ALTER TABLE notetypes ENGINE = InnoDB;
(and any other relevant - maybe all - tables)
and ensure you do not have any side effects (See Mysql Alter Table).
Check also the parameters specific to InnoDB (in my.sql
), See also the Mysql InnoDB engine.
myISAM doesn't do referential integrity. it seems it is legal to add such constraints and hence no error, though the constraints won't be enforced as long as the engine is myISAM. It does store the keys created so the user can see what was intended, though.