34,589
社区成员
发帖
与我相关
我的任务
分享
insert into tb
select * from a where not exists(select 1 from tb b where a.id=b.id)
通过 INSERT FROM 查询,可以将行从一个表复制到另一个表中或在同一个表内复制。例如,在 titles 表中,可以通过 INSERT FROM 查询,将有关某个出版商所有书籍的信息都复制到另一个表中,并使该表可由该出版商使用。 INSERT FROM 查询类似于生成表查询,不同的是将行复制到现有的表中。
提示 还可以通过剪切和粘贴的方法,将行从一个表复制到另一个表中。有关详细信息,请参见在结果窗格中添加新行。
创建 INSERT FROM 查询时指定:
将行复制到的数据库表(目的表)。
从其中复制行的表(源表)。源表或表成为子查询的一部分。如果是在表内进行复制,则源表和目的表相同。
源表中要进行内容复制的列。
将数据复制到的目的表中的目标列。
定义要复制的行的搜索条件。
排序次序(如果要以特定的顺序对行进行复制)。
"分组"选项(如果只对汇总信息进行复制)。
例如,下面的查询将书名信息从 titles 表复制到一个名为 archivetitles 的存档表中。该查询对属于某个出版商的所有书名的四列内容进行复制:
INSERT INTO archivetitles
(title_id, title, type, pub_id)
SELECT title_id, title, type, pub_id
FROM titles
WHERE (pub_id = '0766')
注意 若要将值插入到新行中,请使用 INSERT INTO 查询。
可以对行中的选定列或所有列的内容进行复制。在任何一种情况下,所复制的数据都必须与要复制到的行中的列兼容。例如,如果复制某列(如 price 列)的内容,要复制到的行中的列必须接受带小数位数的数字型数据。如果要对整行进行复制,则目的表必须具有和源表的物理位置相同的兼容列。
当创建 INSERT FROM 查询时,网格窗格将更改以反映可用于复制数据的选项。添加了一个"追加"列,以允许指定数据应复制到的列。
注意 不能撤消执行从中插入查询的操作。作为预防措施,请在执行 INSERT INTO 查询前备份数据。