我正在尝试修改现有的MySQL数据库以用于新的应用程序。 我有一个项目表(table_items),它有多个字段,包括“ItemID”和“ItemName”。 我有另一个表(table_list),其中包含“ItemName”,但没有ItemID。我需要更新此表以包含ItemID而不是ItemName,或者创建一个新表,当table_list.ItemName = table_items.ItemName时,从table_items导入ItemID而不是ItemName。
我尝试过以下方法: UPDATE table_list A,table_items B. SET A.ItemName = B.ItemID WHERE A.ItemName = B.ItemName
当前表有超过500,000行,每次我在PHPMyAdmin中尝试这个时,我都会收到错误“MySQl服务器已经消失”。
非常感谢任何帮助。
答案 0 :(得分:0)
停止mysql服务,在my.cnf
(/etc
mysql目录)中找到文件/etc/my.cnf
,打开它,找到可能设置为1MB的变量max_allowed_packet
,改变它以满足您的需求。
此外,而不是:
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);