我有两张带有相同表格的DATABSE: mytable
,列名为name_code,名称为
schema1 @ databse1
name_code | name pf0tt.....|fact gf09to3...|fact1 it031.....|papp pf0tt.....|fattt gf09to3...|fappt1 iy031.....|foot2 pf0tt.....|oooct gf09to3...|ooct1 ru031.....|uuut2 pf0at.....|tttt kk0eto3...|fact1 ll011.....|fact2
我的问题是我有一个有500多条记录的表(这个是一个例子)我想要的是在这个表中选择特定名称将它们插入另一个数据库的另一个表中(schema2@databse2
)。如何在查询中执行此操作?我可以通过select (update mytable set name_code = ..
我会详细解释我的问题
我有大约300个name_code如何在(,)中插入它们?并且我可以在(,)中拥有1000个name_code和函数,你只能插入500条记录。如何将上表中的name_code放入in(,)?
中答案 0 :(得分:1)
你在找这样的东西吗?
INSERT INTO schema2.mytable
SELECT *
FROM mytable
WHERE name IN ('fact', 'fact1', ...)
-- you can apply other conditions to narrow or broaden the results
-- of filtering source rows
假设您从schema1
执行此查询确保您在schema2中分配了适当的权限才能插入记录。
UPDATE 要插入schema2.mytable中尚不存在的schema1.mytable中的所有对(name_code,name),您可以使用这样的查询
INSERT INTO schema2.mytable (name_code, name)
SELECT name_code, name
FROM mytable1 t
WHERE NOT EXISTS
(
SELECT 1
FROM schema2.mytable
WHERE name_code = t.name_code
AND name = t.name
)
这是 SQLFiddle 演示
调整条件以达到您的目的
如果您想一次性尝试(有条件地插入,更新,删除),您还可以查看 MERGE
语句。