È ansible utilizzare un numero per denominare una colonna della tabella MySQL?

Ho una tabella con nomi di colonne come 25, 50, 100, ecc.

Quando provo ad aggiornare la tabella, ottengo un errore, indipendentemente da come lo faccio

UPDATE table SET '25'='100' WHERE id = '1' 

Ho provato a quotare e backticking in ogni modo, ma senza successo.

L’errore è sempre sulla falsariga di:

Hai un errore nella syntax SQL; controlla il manuale corrispondente alla versione del tuo server MySQL per la syntax corretta da utilizzare vicino a ” 25 ‘= 100 WHERE id = 1’ alla riga 1

Se cambio il nome della colonna in twentyfive – non ho un problema, ma non è quello che voglio. È ansible utilizzare un numero come nome di colonna?

Dai documenti :

Gli identificatori possono iniziare con una cifra ma, a meno che non siano citati, potrebbero non essere costituiti esclusivamente da cifre.

Il che significa che devi citarlo con i tick posteriori come “25”:

 UPDATE table SET `25`='100' WHERE id='1' 

Come altri hanno già detto, puoi spuntare i nomi di tabelle, colonne, ecc. Assicurati solo di non tornare indietro ai valori, altrimenti li interpreterà come nomi di colonne. Quindi, nel tuo esempio, devono essere spuntati solo i 25:

 UPDATE table SET `25`=100 WHERE id=1 

Se è necessario basarsi su un numero per qualche motivo, è ansible aggiungere un semplice prefisso al numero in tutti i casi (ad esempio “col25”, “col87”, ecc.).

Controlla qui: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Gli identificatori possono iniziare con una cifra ma, a meno che non siano citati, potrebbero non essere costituiti esclusivamente da cifre.

Quindi sì, puoi farlo – devi usare i backtics attorno al nome.

I nomi in MySQL possono iniziare con una cifra, ma non possono essere interamente cifre: non possono essere confusi con un numero intero. Quindi, no.

E se inizi il tuo identificatore con una cifra, dovresti essere abbastanza sicuro di stare con MySQL perché molti (molti?) Altri motori di database richiedono un carattere alfa nella parte anteriore dei nomi delle colonne.

(Come affermato nei commenti, un nome di colonna completamente intero è consentito se si utilizza in modo coerente il carattere backtick: se si sono tentati inversi di errori e si è verificato ancora un errore di syntax, inserire la syntax dell’anticipo preciso utilizzata).

Inoltre, ovviamente, produrrai un codice SQL di difficile lettura se scegli le colonne con un numero intero!