# cli-kintoneでcsvデータのUPDATE or INSERT

**URL:** <https://community.cybozu.dev/t/topic/4767>\
**Category:** kintone 開発相談\
**Created:** [2020 年 1 月 14 日午前 10:15 UTC](https://community.cybozu.dev/t/topic/4767 "2020-01-14T10:15:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1376](https://avatars.discourse-cdn.com/v4/letter/l/6a8cbe/32.png) [@Legacy\_Account1376](https://community.cybozu.dev/u/Legacy_Account1376)\
**Post date:** [2020 年 1 月 14 日午前 10:15 UTC](https://community.cybozu.dev/t/topic/4767/1 "2020-01-14T10:15:00Z")

</div>

初歩的な質問で申し訳ございません。

cli-kintoneのCSVインポートを利用して作成済アプリへのupdate or insertをしたいと考えてます。

◆update：アプリ側に、csv内キー(\*)と同一のレコードがある場合

◆insert：アプリ側に、csv内キー(\*)と同一のレコードがない場合

単にインポートすると、insertしたいレコード(=アプリ側にキーが存在しない)場合、

–「updateKey」に指定した条件にあてはまるレコードが見つかりません。

とエラーが表示されてしまいました。

どのようなやり方があるか(そもそもcli-kintoneでは実現できない？)、ご教示いただければ幸いです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account486](https://avatars.discourse-cdn.com/v4/letter/l/b782af/32.png) [@Legacy\_Account486](https://community.cybozu.dev/u/Legacy_Account486)\
**Post date:** [2020 年 1 月 15 日午前 2:20 UTC](https://community.cybozu.dev/t/topic/4767/2 "2020-01-15T02:20:42Z")

</div>

ATARU 様

ご質問ありがとうございます。

データの更新と追加を同時に行う場合は、

更新キーではなく、CSVでレコードIDを指定する必要があると思います。

詳細は[第3回 レコードの更新をしてみよう](https://community.cybozu.dev/hc/ja/articles/115001103666)の「レコードIDを指定してレコードを更新する」をご参考ください。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1376](https://avatars.discourse-cdn.com/v4/letter/l/6a8cbe/32.png) [@Legacy\_Account1376](https://community.cybozu.dev/u/Legacy_Account1376)\
**Post date:** [2020 年 1 月 15 日午前 3:22 UTC](https://community.cybozu.dev/t/topic/4767/3 "2020-01-15T03:22:43Z")

</div>

cybozu Development team 様

ご回答いただきありがとうございます。わかりづらく申し訳ございません…。

ちなみに、レコードIDを利用せず、レコードの一括更新 or 新規追加を実現することは可能でしょうか？

&nbsp;

「CSV内のレコードIDが(アプリ側に同一のIDが)あれば一括更新、CSV内のレコードIDがブランクの場合は新規追加」

になろうかと（[ご案内いただいたページ](https://community.cybozu.dev/hc/ja/articles/115001103666)）存じますが、やりたいこととしては、

「CSV内指定のIDが(アプリ側に同一のIDが)あれば一括更新、CSV内指定のIDが(アプリ側に同一のIDが)なければレコード新規追加」

というイメージです。※以下、参考図

ご教示いただければ幸いです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1377](https://avatars.discourse-cdn.com/v4/letter/l/e495f1/32.png) [@Legacy\_Account1377](https://community.cybozu.dev/u/Legacy_Account1377)\
**Post date:** [2020 年 1 月 15 日午前 4:53 UTC](https://community.cybozu.dev/t/topic/4767/4 "2020-01-15T04:53:35Z")

</div>

ATARU 様

レコードID指定せずに、更新と登録を同時に行うことができないと思います。

レコードID指定する場合の例  
CSVファイルに次のように記載すれば、  
"$id"欄に空またはアプリに存在しないレコードIDの場合は新規追加、その以外場合は一括更新を行うと思います。  
つまり、 "株式会社A"の行は更新、"株式会社B"の行は新規登録となります。

また、企業IDを重複不可に指定することで、一括登録の際に重複の企業IDが存在する場合、エラーとなり、更新・登録を中止します。

“$id” &nbsp;“企業名”&nbsp; “企業ID”&nbsp;&nbsp;  
”１” &nbsp; “株式会社A” “2222”&nbsp; &nbsp; ←（1111→2222に更新）  
”” &nbsp; “株式会社B” “4444”&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1377](https://avatars.discourse-cdn.com/v4/letter/l/e495f1/32.png) [@Legacy\_Account1377](https://community.cybozu.dev/u/Legacy_Account1377)\
**Post date:** [2020 年 1 月 15 日午前 5:36 UTC](https://community.cybozu.dev/t/topic/4767/5 "2020-01-15T05:36:05Z")

</div>

追記

cli-kintoneを使わずに、カスタマイズで実現できますが、ややこしいです。  
①アプリAとアプリBを用意します。  
②アプリA：企業IDの重複禁止にチェックしません。  
③レコードIDも更新keyも設定せずに、CSVにあるすべてのレコードをアプリAに登録します。  
④カスタマイズで、アプリAからデータを取得して、取得したデータ中の企業IDがアプリBに存在するか判断します。  
⑤存在する場合、更新を行い、存在しない場合はアプリBに登録します。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1376](https://avatars.discourse-cdn.com/v4/letter/l/6a8cbe/32.png) [@Legacy\_Account1376](https://community.cybozu.dev/u/Legacy_Account1376)\
**Post date:** [2020 年 1 月 15 日午前 9:02 UTC](https://community.cybozu.dev/t/topic/4767/6 "2020-01-15T09:02:43Z")

</div>

akika 様

ご教示いただきありがとうございました！

追記に記載いただいた内容を踏まえ、開発を進めてみます。

略儀ながらこちらの連絡を持ちまして御礼申し上げます。

どうぞよろしくお願い申し上げます。
