2010-04-04 3 views
1

J'essaie de modifier une base de données MySQL existante pour l'utiliser dans une nouvelle application. J'ai une table d'éléments (table_items), qui a plusieurs champs, y compris "ItemID" et "ItemName". J'ai une autre table (table_list) qui a "ItemName" dedans, mais aucun ItemID. J'ai besoin soit de mettre à jour cette table pour contenir ItemID au lieu de ItemName, ou créer une nouvelle table qui importe des ItemIDs de table_items par opposition au ItemName quand table_list.ItemName = table_items.ItemName.Remplacer les données de la table MySQL par les données d'une autre table

J'ai essayé ce qui suit: Mettre à Jour liste_tables A, B table_items SET A.ItemName = B.ItemID OÙ A.ItemName = B.ItemName

Le tableau actuel a plus de 500 000 lignes et chaque fois que je essayez ceci dans PHPMyAdmin je reçois l'erreur "le serveur MySQl est parti".

Toute aide grandement appréciée.

Répondre

0

Arrêtez le service MySQL, recherchez le fichier my.cnf dans /etc (/etc/my.cnf répertoire mysql), l'ouvrir et trouver la max_allowed_packet variable qui est probablement réglé sur 1Mo, changer pour l'adapter à vos besoins.

En outre, au lieu de ceci:

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

essayez ceci:

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

Questions connexes