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

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


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

Здравствуйте. (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 не может иметь значений по умолчанию, когда правите это поле, убирайте назначение этому полю значений по умолчанию.

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

потому что тип поля 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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...