Можно ли использовать число для именования столбца таблицы MySQL? - PullRequest
18 голосов
/ 02 ноября 2011

У меня есть таблица с именами столбцов, такими как 25, 50, 100 и т. Д.

При попытке обновить таблицу я получаю сообщение об ошибке, независимо от того, как я это делаю

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

Я пробовал цитировать и ставить обратные галочки в разные стороны, но безуспешно.

Ошибка всегда имеет вид:

В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' 25 '= 100 WHERE id = 1' в строке 1

Если я изменю имя столбца на twentyfive- У меня нет проблем, но это не то, что я хочу.Можно ли использовать число в качестве имени столбца?

Ответы [ 5 ]

43 голосов
/ 02 ноября 2011

С документы :

Идентификаторы могут начинаться с цифры, но если они не указаны, они могут состоять не только из цифр.

Это означает, что вы должны заключить его в кавычки, такие как `25`:

UPDATE table SET `25`='100' WHERE id='1'
4 голосов
/ 02 ноября 2011

Как уже говорили другие, вы можете поставить галочку в именах таблиц, столбцов и т. Д. Просто убедитесь, что вы не ставите галочку в своих значениях , иначе это будетинтерпретировать их как имена столбцов.Таким образом, в вашем примере необходимо вернуть только 25:

UPDATE table SET `25`=100 WHERE id=1
1 голос
/ 02 ноября 2011

Проверьте здесь: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Идентификаторы могут начинаться с цифры, но если они не указаны, они могут не состоять только из цифр.

Так что да, вы можете сделать это - вам нужно использовать заднюю часть вокруг имени.

0 голосов
/ 02 ноября 2011

Имена в MySQL могут начинаться с цифры, но не могут быть полностью цифрами - их нельзя путать с целым числом. Итак, нет.

И если вы начнете свой идентификатор с цифры, вы должны быть уверены, что придерживаетесь MySQL, потому что многим (большинству?) Другим механизмам баз данных требуется альфа-символ перед именами столбцов.

(Как указано в комментариях, полностью целочисленное имя столбца допускается , если вы постоянно используете символ обратного удара - если вы пробовали обратные пометки и все еще получали синтаксическую ошибку, опубликуйте точный синтаксис обратного удара, который вы использовали) .

Кроме того, вы, конечно, создадите сложный для чтения SQL, если выберете столбцы с целыми именами!

0 голосов
/ 02 ноября 2011

Если вам по какой-то причине необходимо, чтобы оно основывалось на числе, вы можете добавить к нему простой префикс во всех случаях (например, «col25», «col87» и т. Д.).

...