SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.10.2009 22:56:44

nikitos
Участник
Зарегистрирован: 30.10.2009
Сообщений: 2

Как настроить сервер чтобы имена полей не заключать в кавычки (`)?

Переехал на новый сервер. MySQL версия 5.1.37. После теста сайта оказалось, что запросы, которые прекрасно выполнялись ранее теперь необходимо переписать, заключив все названия полей таблиц в кавычки (`).
Понимаю, что с точки зрения "хорошего тона" программирования так и нужно сделать, но в данный момент требуется настроить по возможности конфигурационные данные для избавления от такой необходимости и чтобы старые запросы работали.
Скажите пожалуйста, как можно настроить сервер, чтобы имена полей в MySQL-таблицах не требовалось заключать в кавычки (`)?
В какую сторону хотя бы смотреть?
Спасибо

Неактивен

 

#2 31.10.2009 00:37:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как настроить сервер чтобы имена полей не заключать в кавычки (`)?

nikitos написал:

Переехал на новый сервер. MySQL версия 5.1.37. После теста сайта оказалось, что запросы, которые прекрасно выполнялись ранее теперь необходимо переписать, заключив все названия полей таблиц в кавычки (`).

Именно необходимо заключать в бектики (`) только те идентификаторы, которые являются ключевыми словами.
Конфигурационными настройками вы эту проблему решить не сможете.
Если не хотите заключать в бектики, то просто переименуйте те поля, которые являются ключевыми словами в 5.1.37

P.S. Последнее в любом случае стоит сделать, так как использование ключевых слов в качестве названий плохая практика. И хотя синтаксис такое позволяет, но рано или поздно сами запутаетесьwink

Неактивен

 

#3 31.10.2009 09:17:39

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как настроить сервер чтобы имена полей не заключать в кавычки (`)?

Перестало работать, потому что в версии 5.1 появились новые зарезервированные слова (которые таковыми в предыдущих версиях не были).
Согласно официальной документации MySQL, по сравнению с 5.0 это:

ACCESSIBLE    
LINEAR    
MASTER_SSL_VERIFY_SERVER_CERT
RANGE    
READ_ONLY    
READ_WRITE

(подробнее см. http://dev.mysql.com/doc/mysqld-version … s-5-1.html)

Наверняка в ваших запросах встречаются какие-нибудь из этих слов.

Неактивен

 

#4 31.10.2009 12:43:22

nikitos
Участник
Зарегистрирован: 30.10.2009
Сообщений: 2

Re: Как настроить сервер чтобы имена полей не заключать в кавычки (`)?

Оказывается, все было немного проще.
Мускул позволяет писать имена полей без кавычек (`), но, например, поле с именем _filename необходимо обрамлять кавычками, причем не спасает даже нижнее подчеркивание (пробел) перед именем.

Пришлось все эти поля закавычить. Работает.

Неактивен

 

#5 31.10.2009 19:07:35

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как настроить сервер чтобы имена полей не заключать в кавычки (`)?

Потому как _filename, начиная с версии 5.1 - тоже зарезервированное слово:

написал:

The words in the following table are explicitly reserved in MySQL 5.1. In addition, _FILENAME is reserved

(правда, непонятно, зачем они об этом слове пишут отдельно, когда можно было его просто включить в список новых для версии 5.1 зарезервированных слов)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson