云社区 博客 博客详情

ADB for mysql 【INSERT [IGNORE] INTO table_name】迁移 DWS 改写方法

瘸子那条好腿 发表于 2020-12-08 15:28:44 2020-12-08
1
1

【摘要】 INSERT INTOINSERT INTO用于向表中插入数据,遇到主键重复时会自动忽略当前写入数据,不做更新,作用等同于INSERT IGNORE INTO。语法 INSERT [IGNORE] INTO table_name [( column_name [, …] )] [VALUES] [(value_list[, …])] [query];参数IGNORE:可选参数,若系统中已...

INSERT INTO

INSERT INTO用于向表中插入数据,遇到主键重复时会自动忽略当前写入数据,不做更新,作用等同于INSERT IGNORE INTO

语法

   
INSERT [IGNORE] INTO table_name [( column_name [,] )] [VALUES] [(value_list[,])] [query];

参数

  • IGNORE:可选参数,若系统中已有相同主键的记录,新记录不会被写入。

  • column_name:可选参数,列名。

  • query:通过定义查询,将一行或多行数据插入表中。

DWS改写方法


CREATE TABLE PRODUCTS
(
PRODUCT_ID INTEGER,
PRODUCT_NAME VARCHAR2(60),
CATEGORY VARCHAR2(60)
);
INSERT INTO PRODUCTS VALUES (1600, 'PLAY GYM', 'TOYS');
INSERT INTO PRODUCTS VALUES (1601, '**ZE', 'TOYS');
INSERT INTO PRODUCTS VALUES (1602, 'HARRY POTTER', 'DVD');

CREATE TABLE NEWPRODUCTS
(
PRODUCT_ID INTEGER,
PRODUCT_NAME VARCHAR2(60),
CATEGORY VARCHAR2(60)
);

INSERT INTO NEWPRODUCTS VALUES (1601, '**ZE', 'TOYS');
INSERT INTO NEWPRODUCTS VALUES (1603, 'HARRY POTTER', 'TOYS');
INSERT INTO NEWPRODUCTS VALUES (1604, 'WAIT INTERFACE', 'BOOKS');

--方法1  MERGE  INTO   
CREATE OR REPLACE PROCEDURE INSERT_DATA
AS
BEGIN
MERGE INTO PRODUCTS P  
USING NEWPRODUCTS NP  
ON (P.PRODUCT_ID = NP.PRODUCT_ID)  
WHEN NOT MATCHED THEN 
  INSERT VALUES (NP.PRODUCT_ID, NP.PRODUCT_NAME, NP.CATEGORY);
END;
/

--调用此存储过程。
CALL INSERT_DATA();

--方法2  NOT EXISTS   
CREATE OR REPLACE PROCEDURE INSERT_DATA
AS
BEGIN
INSERT INTO PRODUCTS   
SELECT * FROM NEWPRODUCTS NP  
WHERE NOT EXISTS (SELECT 1 FROM PRODUCTS MP WHERE NP.PRODUCT_ID = MP.PRODUCT_ID);
END;
/

--调用此存储过程。
CALL INSERT_DATA();

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 1
点赞
分享文章到微博
分享文章到朋友圈

上一篇:ADB for mysql 【INSERT [IGNORE] INTO table_name】迁移 DWS 改写方法

下一篇:DWS Power BI对接指导

评论 (1)


小郭杰克逊

1楼2021-03-23 16:20:04

登录后可评论,请 登录注册

评论