Название таблицы в БД.

adrin02
На сайте с 12.04.2006
Offline
85
455

Здравствуйте!

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

Потом нашел причину. Таблицу в базе я назвал key

Потом почему то решил переименовать в asdfg и все заработало.

Почему таблица названная в key губит запросы?

Хостинг изображений (http://likepic.net) SpeedTest (http://speed-tester.info)
dmitcat
На сайте с 26.05.2005
Offline
123
#1

Пример таблицы:

CREATE TABLE `arh_actions` (

`ID` int(11) NOT NULL auto_increment,

`Razdel` int(11) NOT NULL default '0',

`Date` date NOT NULL default '0000-00-00',

`Header` varchar(255) NOT NULL,

`Annot` longtext NOT NULL,

`Text` longtext NOT NULL,

KEY `ID` (`ID`),
KEY `Razdel` (`Razdel`),
KEY `Date` (`Date`)
)

ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

key - "служебное" слово mysql - индексы определяет...

Либо селяВи (http://www.puper.ru), либо селяВас (http://www.puper.ru)!!!
Demetrio
На сайте с 26.05.2008
Offline
113
#2

да, key служебное слово, лучше называть таблицы иначе.

Ошибка будет если запрос идет такого вида SELECT * FROM key WHERE ...

Но если имя таблица обособить обратным апострофом, то должно работать, т.е. SELECT * FROM `key` должно быть норм)

Размещусь на ваших площадках по тематикам: мобильная связь, спортивное питание
adrin02
На сайте с 12.04.2006
Offline
85
#3
dmitcat:
Пример таблицы:

CREATE TABLE `arh_actions` (
`ID` int(11) NOT NULL auto_increment,
`Razdel` int(11) NOT NULL default '0',
`Date` date NOT NULL default '0000-00-00',
`Header` varchar(255) NOT NULL,
`Annot` longtext NOT NULL,
`Text` longtext NOT NULL,
KEY `ID` (`ID`),
KEY `Razdel` (`Razdel`),
KEY `Date` (`Date`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

key - "служебное" слово mysql - индексы определяет...

А какие еще есть "служебные" слова?

adrin02 добавил 15.07.2009 в 13:29

Demetrio:
да, key служебное слово, лучше называть таблицы иначе.
Ошибка будет если запрос идет такого вида SELECT * FROM key WHERE ...
Но если имя таблица обособить обратным апострофом, то должно работать, т.е. SELECT * FROM `key` должно быть норм)

Не `key` тоже не работало.

ewg777
На сайте с 04.06.2007
Offline
225
#4
adrin02
На сайте с 12.04.2006
Offline
85
#5

Всем спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий