Ahoy Jan!
> Akin to other RDBMS, I imagine MySQL has System
> Tables which describe various parts of their
> implementation, such as tables which list all the
> columns in the current database. My first
Yes and no. It depends on the version. What comes close to your question is the new INFORMATION_SCHEMA information database that exists as of 5.0.2. Check the manual:
http://dev.mysql.com/doc/mysql/en/information-schema.html
Upto version 4 there have been no such "system tables" except for the privilege system tables contained in the mysql database (http://dev.mysql.com/doc/mysql/en/privileges.html).
> question, then, is whether or not this expectation
> is true. I found online documentation describing
> these for MaxDB but their absence in DuBois's
> Second Edition reference makes me want to check
> it.
MaxDB has some more tables than MySQL. MySQL does not store all system informations in system tables. For example SHOW INNODB STATUS (http://dev.mysql.com/doc/mysql/en/show-innodb-status.html) does not fill any system tables but dumps status informations like a SELECT .
> Second, assuming they exist, is there a table
> which indicates for a column whether or not it is
> an AUTO_INCREMENT?
Learn:
SHOW CREATE TABLE -
http://dev.mysql.com/doc/mysql/en/show-create-table.html
DESCRIBE -
http://dev.mysql.com/doc/mysql/en/describe.html
Information Schema - COLUMNS -
http://dev.mysql.com/doc/mysql/en/columns-table.html
> I'm writing a custom data loader and don't want to
> overwrite AUTO_INCREMENT values with old ones.
> Instead, I am writing code to insert a new row for
> the new values, grab its new value through PHP's
> mysql_insert_id, and pair that new value with the
> old in an auxiliary table. Then, during the load,
> when references to the old AUTO_INCREMENT are
> made, I'm intending to substitute the new one.
>
> I'd prefer not to have a store which maps
> tablenames to AUTO_INCREMENT column names if I can
> help it, so I thought I'd take this opportunity to
> learn a bit more about what's under MySQL's
> petticoats.
I don't get what you're trying to do. But generally speaking check the PHP DB abstraction layers for emulated sequences. Or if you consider MaxDB check the build-in SEQUENCE feature.
Ulf