为我的wordpress站点安装了一些mysql。均在1 DB以内。
我正在尝试更新wp_options
表格来源wp_2_options
(多站点)。
他们都有option_name
(unique\\u键)和option_value
列
它需要更新option_value
在wp_options
如果option_name
中已存在wp_2_options
桌子
并从中插入行wp_2_options
如果option_name
不存在。
那么我该怎么做UPDATE
和“使用插入”UNIQUE KEY 值而不是PRIMARY KEY
我该怎么做?
两者的结构相同
wp_options (
option_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
option_name varchar(64) NOT NULL DEFAULT \'\',
option_value longtext NOT NULL,
autoload varchar(20) NOT NULL DEFAULT \'yes\',
PRIMARY KEY (option_id),
UNIQUE KEY option_name (option_name)
) ENGINE=InnoDB AUTO_INCREMENT=1402 DEFAULT CHARSET=utf8;
提前感谢
更新:
最终使用此插入然后更新。这对我有用。现在将通过PHP使用它。
-- Adding completely new rows from wp_2_options into wp_options
INSERT IGNORE INTO wp_options
SELECT *
FROM wp_2_options
WHERE option_name NOT IN (SELECT option_name FROM wp_options);
-- Updating the option_name field in wp_options, if that got changed in wp_2_options
UPDATE wp_options JOIN wp_2_options
ON wp_options.option_name = wp_2_options.option_name
SET wp_options.option_value = wp_2_options.option_value;