2017-09-20 37 views
2

我想将备注列添加到合并查询表中,这样当我刷新数据时,我在记录上创建的备注将继续排列。我如何添加一列来做到这一点?Excel Power Query 2016自定义列的备注

+0

这个问题不清楚。请考虑再写一些关于你想要实现的例子,并且更具体地说明你一直在尝试的工具。 – norok2

回答

0

MySQL提供了INSERT和UPDATE的几种变体,以允许插入和更新所需的数据。这些特性提供了强大的功能和灵活性,使得MySQL比其他方式更有能力。在本文中,我将概述每个功能,帮助您了解如何从中选择,并指出一些需要注意的事项。

设置

我使用的是MySQL 4.1.15创建我的例子。我认为MyISAM表不支持事务,用下面的示例数据:

create table t1 (
    a int not null primary key, 
    b int not null, 
    c int not null 
) type=MyISAM; 

create table t2 (
    d int not null primary key, 
    e int not null, 
    f int not null 
) type=MyISAM; 

insert into t1 (a, b, c) values 
    (1, 2, 3), 
    (2, 4, 6), 
    (3, 6, 9); 

insert into t2 (d, e, f) values 
    (1, 1, 1), 
    (4, 4, 4), 
    (5, 5, 5); 

概述

假设我想从T2将数据插入到T1。这个数据会违反主键(一行存在的地方,列a是1),因此插入将失败:错误1062(23000):重复键1的条目'1'。回想一下,在MySQL中,主键只是一个独特的索引名为PRIMARY。任何违反任何唯一索引的数据都会导致相同的问题。

这种情况经常发生。例如,我可能会将一些数据导出到电子表格,将其发送到客户端,客户端可能会更新或添加一些数据并将电子表格返回给我。这是更新数据的一种可怕方式,但由于各种原因,我相信很多读者发现自己处于类似的情况。当我与一个在不同电子表格中拥有多个数据版本的客户合作时,会发生很多事情,我负责整理所有数据,标准化格式并将其导入到关系数据库中。我必须从一张电子表格开始,然后插入和/或更新与其他人之间的差异。

我想要做的是要么只插入新行,要么插入新行并更新已更改的行(取决于方案)。有几种方法可以完成这两项任务。

只插入新行

如果我想只插入不会违反唯一索引,我可以行:

从T2删除重复的行和插入的一切,仍然是:

delete t2 from t2 inner join t1 on a = d; 
insert into t1 select * from t2; 

第一条语句从t2中删除第一行;第二个插入剩下的两个。这种方法的缺点是它不是事务性的,因为表是MyISAM,并且有两个语句。如果没有其他事情同时改变任何一张表,这可能不是问题。另一个缺点是我刚刚删除了一些我后续查询中可能需要的数据。

相关问题