Заменить данные в таблице MySQL данными из другой таблицы - PullRequest
1 голос
/ 05 апреля 2010

Я пытаюсь изменить существующую базу данных MySQL для использования в новом приложении. У меня есть таблица элементов (table_items), которая имеет несколько полей, в том числе «ItemID» и «ItemName». У меня есть другая таблица (table_list), в которой есть "ItemName", но нет ItemID. Мне нужно либо обновить эту таблицу, чтобы она содержала ItemID вместо ItemName, либо создать новую таблицу, которая импортирует ItemIDs из table_items в отличие от ItemName, когда table_list.ItemName = table_items.ItemName.

Я пробовал следующее: ОБНОВЛЕНИЕ table_list A, table_items B SET A.ItemName = B.ItemID ГДЕ A.ItemName = B.ItemName

В текущей таблице более 500 000 строк, и каждый раз, когда я пытаюсь сделать это в PHPMyAdmin, я получаю сообщение об ошибке «сервер MySQl исчез».

Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 05 апреля 2010

Остановите службу mysql, найдите файл my.cnf в /etc (/etc/my.cnf каталог mysql), откройте его и найдите переменную max_allowed_packet, которая, вероятно, установлена ​​в 1 МБ, измените ее в соответствии со своими потребностями.

Также вместо этого:

UPDATE table_list A, table_items B SET A.ItemName = B.ItemID WHERE A.ItemName = B.ItemName

попробуйте это:

UPDATE table_list A SET ItemName = (SELECT ItemID FROM table_items B WHERE A.ItemName = B.ItemID);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...