in reply to Re^7: Conditional many to many relationships with Class::DBI
in thread Conditional many to many relationships with Class::DBI

InnoDB has been part of MySQL since 3.23.34a, which came out in September, 2000. So, it's been around for at least 4 years. However, in the 3.x series, InnoDB isn't enabled by default. It's only in the 4.x series that it is. So, at four years old, I wouldn't consider InnoDB to be "new".

MySQL and Sybase were the only databases in the comparison that supported all of the required levels. Oracle and Postgres only support the second and fourth levels.

As for row-level locking, I'll quote from section 7.3.1 of the MySQL manual:

Currently, MySQL supports table-level locking for ISAM, MyISAM, and MEMORY (HEAP) tables, page-level locking for BDB tables, and row-level locking for InnoDB tables.

As we're discussing InnoDB tables, row-level locking is supported.

Now, out of the box, all tables are created as MyISAM tables, which does not support transactions. However, even a cursory reading of the MySQL manual (which every DBA should do) states this in very plain English and converting tables from MyISAM to InnoDB is extremely simple. ALTER TABLE foo.bar ENGINE_TYPE = InnoDB should almost always work. You can even set the default ENGINE_TYPE in any one of three configuration files, plus on the commandline. So, it's not like you have to jump through hoops to do what needs done (unlike some other databases I can think of.

So, no, I don't think I overstated anything. :-)

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.