2010-08-09 12 views
7

In MySQL, è necessario circondare il testo con il segno di spunta? Ho visto spesso frammenti di codice che usano i segni di spunta, ma non ho riscontrato un caso in cui non circondare un nome di tablatura con i segni di spunta non ha nulla di diverso rispetto a.MySQL - Necessità del nome della tabella circostante con `(tickmarks)?


Sembra che il framework con cui lavoro analizza automaticamente i nomi chiave di parole riservate con segni di graduazione.

+2

una domanda così banale non dovrebbe essere risolta prima di accettare alcuni precedenti. –

+0

Si prega di provare a contribuire alle risposte ad alcune delle mie precedenti domande. – ina

+1

@Col. Shrapnel - È sempre meglio evitare le controversie. Nessuno potrebbe costringere gli altri a fare qualcosa, a meno che il donatore non abbia il proprio consenso/desiderio. ** Cerca di essere diplomatico, ma posso capire che non è sempre possibile seguire. ** –

risposta

8

I segni di spunta sono lì per distinguere i nomi di tabella (o colonna!) Dalle parole riservate di SQL. Ad esempio, senza i segni di spunta, una tabella o una colonna denominata update potrebbe essere in conflitto con il comando SQL update.

È consigliabile non nominare tabelle e colonne con parole riservate in primo luogo, ovviamente, ma se si porta un'applicazione a un nuovo motore di database (o eventualmente anche una nuova versione di MySQL), potrebbe avere un diverso set di parole riservate, quindi è possibile che tu abbia appena infranto la tua app. I segni di spunta sono la tua assicurazione contro questo tipo di oops.

+4

I backtick sono specifici di MySQL, tuttavia - altri motori di database utilizzano virgolette diverse per identificatori, come SQL Server [TableName] o ANSI SQL "TableName" (virgolette). – cHao

+0

Hmm. Quindi una funzionalità che potrebbe essere un utile aiuto per la portabilità è invece specifica per l'implementazione. –

+1

@Brian: Heh, sì, ora che cHao l'ha detto, mi sono guardato un po 'più vicino. MySQL non è il solo DBS che supporta i backtick, ma è il principale. Ogni DBS sembra preferire farlo in un modo diverso. Tutti sembrano supportare identificatori con doppia virgoletta, ma alcuni hanno bisogno di una particolare opzione o modalità esplicitamente attivata per farlo. –

6

I segni di graduazione sono necessari quando i nomi di tabella o colonna utilizzano mySQL keywords.

2

È necessario solo se il nome della tabella è composto da caratteri non "word" (ad esempio: qualsiasi cosa oltre a lettere, numeri e caratteri di sottolineatura) o è uguale a una parola chiave in MySQL. Non è mai "cattivo" citare il nome, ma non è male quando lo si deve fare, quindi molti programmi che generano query MySQL saranno conservativi e citeranno il nome - è più semplice in questo modo.

+1

Mi piacerebbe sapere perché tutti sono stati downvoted con nessun commento, nemmeno un "nyah!" : P – cHao

+0

ask @ col-shrapnel ... il tizio mi insegue, giù vota i miei post e le risposte degli altri, e mi lamenta che dovrei aumentare la mia accettazione. l'ironia è che in realtà non ha mai risposto a nessuna delle mie domande. E il suo rapporto di accettazione è solo del 50% – ina

+0

Sembra che tutti su questa domanda siano stati downvoted una volta .. che direi è un po 'approssimativo! – Dexter

2

Una volta ho lavorato a un lavoro in cui avevano un database di "posizioni". Lo hanno chiamato stati. e aveva tutto nelle tabelle ogni tabella è stata nominata dal codice di stato. quindi il Missouri era MO e l'Arkansas era AR.

Diversi codici di stato sono anche parole di riserva OR (Oregon) e IN (Indiana) e ON (Ontario) ... Non conosco esattamente uno stato.

Anche se penso che ci siano modi migliori per organizzare i loro dati di database, ci sono casi in cui le persone vogliono nominare le cose come una parola riservata. Questo è un esempio in cui il marchio `` ha mantenuto il codice funzionante.

Problemi correlati