[MySQL] mysqldump: wat betekenen die /*!32312 etc..

Pagina: 1
Acties:

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Hallo,

Gek genoeg heb ik na een half uur zoeken nog niet het antwoord gevonden op de volgende vraag.

Als ik een backup doe van mijn MySQL db's met 'mysqldump' .. zie ik in de output vaak het volgende voorkomen :

code:
1
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `customers` /*!40100 DEFAULT CHARACTER SET latin1 */;


Vraag: Waarom is dat 'if not exists' commented .. en wat betekent die code '/*32312' etc .. ?

Is dat om voor elk commando aan te tonen vanaf welke versie van MySQL dit gaat werken ??

  • Mr. Bondt
  • Registratie: Februari 2005
  • Laatst online: 20-02 10:21
Als ik zo naar de nummers kijk, lijken het mij versie-nummers.
Bij CREATE DATABASE /*!32312 IF NOT EXISTS*/ als je lager hebt dan versie 3.23.12 (oid) dan ziet hij dat als een gewone comment.
Correct me if I'm wrong :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Hoewel ik het ook niet zeker weet, klinkt wat Mr. Bondt zegt erg aannemelijk. Blijkbaar heeft MySQL een soort van conditional comments, waarbij vergeleken wordt met versienummers. Heb je die versie of hoger, dan is het geen commentaar en wordt de code gewoon uitgevoerd.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.