Een veld checken op auto_increment
Ik gebruik mysql_fetch_field() om de eigenschappen van een veld te checken. Maar hoe kun je checken of een veld op auto_increment is ingesteld?
Query de data dictionary dat geeft veel zinnigere info dan _fetch_field
Ik heb even gegoogled... maar ik kan niet vinden hoe ik de data dictionary opvraag....
De meeste data dictionary tabellen kan je benaderen met een ordinaire select of show
Ik denk dat noppes graag wil opscheppen met een duur woord voor bijvoorbeeld de "information_schema" nep-database die in MySQL 5 zit. Hierin kan je dit soort informatie redelijk gemakkelijk opvragen. Ook kan je "SHOW COLUMNS FROM tabel" gebruiken. Maar of het nu sneller is dan mysql_fetch_field, ik denk niet noemenswaardig.
Of het sneller is, is inderdaad de vraag, maar waarschijnlijk heb je wel meer aan information_schema. Je kan er namelijk erg veel gegevens uit halen en het mooie is dat bijna alle database systemen het ondersteunen. Je leert dus een keer iets en kan dat zelfde trucje vervolgens vaker toepassen, database en programmeertaal onafhankelijk wat van fetch_field niet te zeggen is. Ik twijfel er wel aan of je een auto_increment uit information_schema kan halen, volgens mij is dit niet standaard, bij SQL Server kan je dit (wat dan identity heet) er niet uit halen.
Waar haal je dat vandaan? Volgens het volgende stukje zijn MS, MySQL en PostgreSQL de enige die het gebruiken. Het is de standaard; helaas houdt niet iedereen zich aan de standaard :P
http://troels.arvin.dk/db/rdbms/#cli-table_description
In ieder geval een handige link omdat ook de punten waar afgeweken wordt worden beschreven.