2010-07-15 7 views
20

ho queste righe nella parte superiore di un file di MySQL .sql (scaricati con phpMyAdmin):MySQL e righe di commento fuori

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 

Ma tutti sembrano essere commentata. Quindi MySQL li ignorerà quando il file verrà caricato in un database? Se è così, perché generare queste linee?

risposta

29

Questi sono commenti condizionali rivolti a determinate versioni di MySQL.

Da here e here: osservazioni specifiche versione

  • MySQL Iniziamo con /*!
  • e terminare con */
  • I numeri di versione sono sempre 5 cifre
  • numeri di versione sono nel numero di release principali formati , numero di versione minore, numero di revisione con il maggiore è 1 cifra e il minore e revisione essendo 2 cifre a sinistra imbottito con 0 di
  • Versione commenti specifici si rivolgerà qualsiasi versione uguale o superiore il numero di versione elencato
+0

ok allora, grazie! – Spoonface

+0

@Unicron Potrebbe non essere sempre per una versione specifica, perché ho provato a scaricare un file con la vista mysql, questa vista è definita come commentata, non ha nulla a che fare con la versione di mysql. – pahnin

6

MySQL volontà analizzare ed eseguire queste righe di codice, credo per la localizzazione e la roba di codifica dei caratteri, perché i commenti iniziano con /*! (con il punto esclamativo) anziché solo lo stile C /*.

Pensa allo stesso modo in cui condividi commenti e Internet Explorer. <!--[if IE]><![endif]--> sembra un semplice vecchio commento HTML ad altri browser, ma IE riconosce questo commento speciale e lo analizza secondo necessità. Allo stesso modo, /*! */ si presenta come qualsiasi altro commento ad altri DBMS SQL, ma è speciale per MySQL.

+0

ok allora, grazie! – Spoonface