遇到一个数据库操作的问题:有两个主键完全一致,行数相同但属性不同的表,其实就是把原本在同一个表的属性进行分割成了两个表article和article_content。现在又想把它们合并回去,把article_content的属性合并到artilce
表。我先在article表里用ALETE
加入article_content表里的属性,再想办法把article_content表的字段合并到article中。
一开始的时候不知道是不是脑袋抽了,总想着插入啊合并啊这些词,去搜索的关键词是分表合并
、从另一个表插入数据
,找得很辛苦,才找到INSERT INTO SELECT
语法:
INSERT INTO article
SELECT article, article_content
WHERE article.ID = article_content.ID;
毫无疑问,失败了,不知道是因为语法就不对还是主键的唯一性约束问题还是article表里没有article_content表的属性。又继续在搜索引擎上找解决方法,不记得看到的什么说到,用INSERT INTO SELECT
要确保其属性一致,就是不一致而只插入少量属性,才猛然想起,我这除了主键一致,根本就没有一致的地方,怪不得会出错。
仔细想了一下,发现这根本就不是插入,而是更新,遂改成
UPDATE article, article_content
SET article.contnet = article_content.content
WHERE article.ID = article_content.ID;
成功了。
总结一下,
- 使用搜索引擎的时候,一定要提炼好关键词。
- 在使用搜索引擎之前,为什么不先自己思考、去翻书呢?也许其实这是一个很简单的问题。