Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: базы данных

Войти
Регистрация
Восстановить пароль
 
maxapet
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 95
#1

Ошибка переполнения стека при удалении записей из таблицы - PHP БД/MySQL

27.10.2016, 11:26. Просмотров 220. Ответов 6
Метки нет (Все метки)

Ситуёвина такая: есть таблица. На таблицу подвешены несколько триггеров, удаляющих записи из зависимых таблиц. При попытке удалить записи из главной таблицы получаю такое сообщение об ошибке:

Thread stack overrun: 8828 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.

В чём может быть дело? Операция-то тривиальная. Нет?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 11:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос MySQL Ошибка переполнения стека при удалении записей из таблицы (PHP БД):

Как наладить связь между таблицами в mysql так, чтобы при удалении, удалялись все таблицы, связанные с этой. И еще о "призрачных записях" - PHP БД
У меня есть таблица clients, в ней есть поля contacts_id, где цифра ведет к таблице contacts по id. Сделал это, чтобы не засорять таблицу...

Вывод уникальных записей с таблицы и суммирование дублированых записей с выводом колличества - PHP БД
Доброго времени суток форумчане! Не получается фильтровать записи при выводе с таблицы MYSQL. Нужно вывести уникальные модели и...

Вывод из таблицы MySQL записей в виде html таблицы и дальнейшая их обработка - PHP БД
И снова здравствуйте! На этот раз я со сложным вопросом. Мне нужно вывести определенные записи из таблицы MySQL и собрать их в таблицу...

ошибка при удалении записей из бд - C#
при удалении данных выскакивает ошибка: Удаление или изменение записи невозможно. В таблице "Аудитории" имеются связанные записи. Как это...

Что я мог сделать неправильно при удалении всех записей из таблицы? - Delphi БД
пишу код procedure TForm3.Button2Click(Sender: TObject); begin query1.sql.Clear; query1.SQL.Text:=('truncate table JurLocal'); ...

Ошибка при удалении повторяющихся записей - Firebird/InterBase
Добрый день! есть табличка Id_zavtag zav_number tag 1 5 5 2 ...

6
Para bellum
Эксперт PHP
3143 / 2906 / 643
Регистрация: 06.01.2011
Сообщений: 8,486
27.10.2016, 12:53 #2
Цитата Сообщение от maxapet Посмотреть сообщение
На таблицу подвешены несколько триггеров, удаляющих записи из зависимых таблиц.
А чем foreign key не угодили?

Проверьте значение настройки "thread_stack" в файле my.cnf или my.ini
1
maxapet
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 95
27.10.2016, 15:40  [ТС] #3
А чем foreign key не угодили?
Я только начинаю работать с MySQL- а что, Foreign Key обеспечивает удаление записей из зависимых таблиц?

"Проверьте значение настройки "thread_stack" в файле my.cnf или my.ini" - это понятно из описания ошибки, но неужели DELETE такая ресурсоёмкая операция? Обычно, переполнение стека происходит при бесконечной рекурсии, насколько я с этим сталкивался. Тут ведь ничего такого быть не должно.
0
BearBaloo
41 / 41 / 7
Регистрация: 04.10.2016
Сообщений: 154
Завершенные тесты: 1
27.10.2016, 15:41 #4
Возможно кол-во записей большое и не хватает выделенной памяти для совершения операции, а вообще такая штука делается как говорил Para_bellum через foreign key

onDelete и onUpdate = CASCADE
2
Para bellum
Эксперт PHP
3143 / 2906 / 643
Регистрация: 06.01.2011
Сообщений: 8,486
27.10.2016, 15:47 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от maxapet Посмотреть сообщение
Foreign Key обеспечивает удаление записей из зависимых таблиц?
Да, если указать ON DELETE CASCADE. Например, в таблице "posts" есть поле "user_id", которое относится к полю "id" из таблицы "users". И вот если удалить из таблицы "users" запись с id = 1, то из таблицы "posts" удалятся все записи, у которых в поле "user_id" содержится единица.

Не знаю, как там у Вас всё организовано. Возможно, что есть какое-то зацикливание, если настройка "thread_stack" содержит вменяемое значение.
1
maxapet
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 95
27.10.2016, 16:46  [ТС] #6
Не знаю, как там у Вас всё организовано. Возможно, что есть какое-то зацикливание, если настройка "thread_stack" содержит вменяемое значение.
Нет ничего сложного: главная таблица, и две зависимых, без каких-либо дополнительных связей.
Спасибо, сейчас попробую.
0
maxapet
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 95
29.10.2016, 18:42  [ТС] #7
Сделал через PRIMARY KEY, и всё заработало, спасибо.
0
29.10.2016, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2016, 18:42
Привет! Вот еще темы с ответами:

Ошибка при удалении записей в таблице - Delphi БД
Доброго времени суток, возникла проблема при удалении записей в таблице, при удалении возникает ошибка (рисунок 1) такая ошибка возникает...

Ошибка переполнения стека - Pascal
При запуске программы на исполнение выдает ошибку: "202. Ошибка переполнения стека". Что это такое и как решить эту проблему? Если можно,...

Ошибка переполнения стека - Turbo Pascal
При компиляции всё нормально но при запуске ошибка uses crt; type mas1=array of integer; mas2=array of real; var...

Ошибка переполнения стека. - Turbo Pascal
Имеем программу uses CRT; const n = 50; type tzapis = record FIO :string; indeks :longint;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru