Перейти к публикации

Ограничение количества символов в базе


Рекомендованные сообщения

Здравствуйте. (cityguidespb.ru) Существует проблема с ограничением количества символов для тегов в новости.

Прочитал комментарий от celsoft написанный 16 января 2015 11:45 вот тут - http://dle-news.ru/release/page,1,3,1632-datalife-engine-v104-final-release.html#comment

в котором написано:

Никакого бага со стороны DLE в данном вопросе нет и не было. Данное поле в БД MySQL имеет ограничение в 255 символов. Если нужно больше то меняйте для поля tags тип поля на text в таблице dle_posts

1. Разве в dle существует таблица dle_posts?

2. Пробовал изменить уже в таблице dle_post поле tags, и прописать вместо - varchar, text, у меня не вышло, пишет ошибку:

Ошибка запроса: #1101 - BLOB/TEXT column 'tags' can't have a default value

Как быть? Как увеличить количество символов в tags?

Ссылка на сообщение
Поделиться на других сайтах

1. Разве в dle существует таблица dle_posts?

Это я просто опечатался. Последняя буква лишняя.

Пробовал изменить уже в таблице dle_post поле tags, и прописать вместо - varchar, text, у меня не вышло, пишет ошибку

Правильно пишет, потому что тип поля text не может иметь значений по умолчанию, когда правите это поле, убирайте назначение этому полю значений по умолчанию.

  • Поддерживаю 1
Ссылка на сообщение
Поделиться на других сайтах

потому что тип поля text не может иметь значений по умолчанию, когда правите это поле, убирайте назначение этому полю значений по умолчанию.

Пробовал:

Если ставить TEXT а по умолчанию - нет, то ошибка:

dot.gifdot.gif Ошибка запроса:

#1170 - BLOB/TEXT column 'tags' used in key specification without a key length

Если ставить TEXT а по умолчанию - NULL, то ошибка:

Ошибка запроса:

#1170 - BLOB/TEXT column 'tags' used in key specification without a key length

В общем так и не получилось изменить тип поля tags.

Так как и что делать что бы получилось изменить тип поля tags?

Ссылка на сообщение
Поделиться на других сайтах

Так как и что делать что бы получилось изменить тип поля tags?

Я не могу сказать в чем именно вы допускаете ошибку, потому как не вижу ваших непосредственных действий.

Ссылка на сообщение
Поделиться на других сайтах

Я не могу сказать в чем именно вы допускаете ошибку, потому как не вижу ваших непосредственных действий.

Пытался сделать изменения непосредственно в phpMyAdmin, нажал на dle_post - структура - нажал изменить напротив tags, дальше увидел это:

7524268_s.png

Дальше сделал так, но вышла ошибка:

7524301_s.png

После попробовал так, но снова ошибка:

7524305_s.png

Дальше сделал бекап таблицы dle_post, потом в файле бекапа сменил

`tags` varchar(330) NOT NULL DEFAULT '',

на

`tags` text NOT NULL,

Удалил таблицу `dle_post` в phpMyAdmin и восстановил из измененного бекапа, но тогда ошибка:

Ошибка

SQL запрос:

--

-- Индексы сохранённых таблиц

--

--

-- Индексы таблицы `dle_post`

--

ALTER TABLE `dle_post`

ADD PRIMARY KEY (`id`), ADD KEY `autor` (`autor`), ADD KEY `alt_name` (`alt_name`), ADD KEY `category` (`category`), ADD KEY `approve` (`approve`), ADD KEY `allow_main` (`allow_main`), ADD KEY `date` (`date`), ADD KEY `symbol` (`symbol`), ADD KEY `comm_num` (`comm_num`), ADD KEY `tags` (`tags`), ADD KEY `fixed` (`fixed`), ADD FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`);

Ответ MySQL: dot.gif

#1170 - BLOB/TEXT column 'tags' used in key specification without a key length

Дальше в том же бекапе из строк:

ALTER TABLE `dle_post`

ADD PRIMARY KEY (`id`), ADD KEY `autor` (`autor`), ADD KEY `alt_name` (`alt_name`), ADD KEY `category` (`category`), ADD KEY `approve` (`approve`), ADD KEY `allow_main` (`allow_main`), ADD KEY `date` (`date`), ADD KEY `symbol` (`symbol`), ADD KEY `comm_num` (`comm_num`), ADD KEY `tags` (`tags`), ADD KEY `fixed` (`fixed`), ADD FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`);

Удалил:

ADD KEY `tags` (`tags`),

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

Но в процессе поиска в интернете решения данной проблемы понял, что без - ADD KEY `tags` (`tags`), на сайте уже не будут выводиться все посты по каждому тегу... выходит что это снова ошибка.

Так вот снова спрашиваю, как мне изменить тип поля tags - varchar(255) на tags - text?

Может какой то особый запрос надо сделать что бы не нарушать правильность работы базы...?

Вы наверняка знаете как и что надо сделать..

Ссылка на сообщение
Поделиться на других сайтах

qaz909,

так. Сделайте следующее, внизу в структуре таблиц удалите индекс для поля tags, после чего измените тип этого поля на text убрав определение значения по умолчанию.

Ссылка на сообщение
Поделиться на других сайтах

в структуре таблиц удалите индекс для поля tags, после чего измените тип этого поля на text убрав определение значения по умолчанию.

Спасибо!

То есть последнее я сделал правильно..? Только другим путем...

После манипуляций, напротив поля tags - слова - Первичный, Уникальный, Индекс... перестали быть активными, а от этого не нарушается логика работы базы, все ли теги будут в порядке так сказать?

Ссылка на сообщение
Поделиться на других сайтах

После манипуляций, напротив поля tags - слова - Первичный, Уникальный, Индекс... перестали быть активными, а от этого не нарушается логика работы базы, все ли теги будут в порядке так сказать?

Логика на нарушается. Возрастает только нагрузка на сервер, но она неизбежна в данном случае. В противном случае нужно использовать меньшее количество тегов для одной новости.

Ссылка на сообщение
Поделиться на других сайтах

Логика не нарушается. Возрастает только нагрузка на сервер, но она неизбежна в данном случае. В противном случае нужно использовать меньшее количество тегов для одной новости.

Спасибо! Получил ответ на свой вопрос.

Ссылка на сообщение
Поделиться на других сайтах

А вот такой вопрос - если я изменю тип соответствующего поля, то новость сможет вмещать в себя бОльшее количество символов, чем зашито в системе? Не будет икоты от системы и отрыжек от ее функций?

Ссылка на сообщение
Поделиться на других сайтах

А вот такой вопрос - если я изменю тип соответствующего поля, то новость сможет вмещать в себя бОльшее количество символов, чем зашито в системе? Не будет икоты от системы и отрыжек от ее функций?

http://dle-news.ru/tips/143-podderzhka_skriptom_bolshikh_tekstov.html

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...