[OSGeoJapan-discuss] 【質問】QGISのshapeファイル:既存+新しく地物を追加した際に自動的にユニークIDが入力される方法(uuid()以外でもあるでしょうか?)

藤田卓 fujita @ nacsj.or.jp
2023年 11月 13日 (月) 00:00:15 PST


かやまさま

藤田です
アドバイスいただきありがとうございます

Geopackage 不勉強で初めて知りました。
これだと、脱SHAPEファイルで 主キー(ACCESSなどのDBの主キーみたいに、
自動で重複なしのIDを与え、人間が操作できないID)を与えることが可能ということですね

田鎖さま提案の
concat(format_date(now(),'yyMMdd'),right(left(uuid(),4),3))
でIDを自動で付加でき、飛躍的に正確性が高まる(画期的!!!)と思いましたが、

人間が間違えて操作すると、削除するリスクも0ともいいきれず、
欲をいえば
ACCESSなどのDBの主キーみたいに、
人間が操作できないIDだとありがたいなと思っていました

Geopackage勉強してみます



2023年11月13日(月) 16:19 Yoichi Kayama <yoichi.kayama @ gmail.com>:

> この処理は新たなフィールドを作成して、そこに連番つけるだけみたいですね。
> そうするとご所望の機能ではないかもしれません。
>
> 面倒でないのは ShapeファイルやめちゃってGeopackageにしてしまうという手がありますが。
> Geopackageぼベクタはデフォルトでidというカラムがあって主キーになっていてここは多分自動インクリメントです。
> (ですから id というカラムがあるShapeファイルとかをGeopackageに変換するとエラーになります。
> その場合Geopackage側のキーカラム名を変換のところでidでないものに変えるという必要あります)
>
> ただそれだと既存レコードのキーは生かされませんが。
>
> 2023年11月13日(月) 15:11 藤田卓 <fujita @ nacsj.or.jp>:
>
>> かやまさま
>>
>> 早速アドバイスいただきありがとうございます
>> 藤田です
>>
>> >ベクタのレイヤを作成した後 プロセッシングツールボックス -> ベクタテーブル ->  自動インクリメント属性を追加 で可能かもしれません。
>>>> https://docs.qgis.org/3.28/ja/docs/user_manual/processing_algs/qgis/vectortable.html#qgisaddautoincrementalfield
>>
>> ありがとうございます
>> ご教授いただいた方法では、ベクタの新しい地物を追加する度に毎回、
>> 「 ベクタのレイヤを作成した後 プロセッシングツールボックス -> ベクタテーブル ->  自動インクリメント属性を追加 」を実行して
>> 出力してSHAPEを作成する必要があるということですね
>>
>> この場合は、過去に作成していた地物のIDは、変わらず、同じIDが付与することも可能ということでしょうか
>>
>> (編集の際は、地物の追加だけでなく、過去に作成した地物を削除、または過去に作成していた地物を編集する場合もある(IDはそのままにしたい)したりすることもありますが、過去のIDはそれぞれ引き継ぐもしく、削除した地物のIDは復活しないとしたいです)
>>
>> たびたびのお伺いとなってしまい申し訳ございません
>>
>> 2023年11月13日(月) 13:58 Yoichi Kayama <yoichi.kayama @ gmail.com>:
>>
>>> 藤田様
>>>
>>> ベクタのレイヤを作成した後 プロセッシングツールボックス -> ベクタテーブル ->  自動インクリメント属性を追加 で可能かもしれません。
>>>
>>>
>>> https://docs.qgis.org/3.28/ja/docs/user_manual/processing_algs/qgis/vectortable.html#qgisaddautoincrementalfield
>>>
>>> 2023年11月13日(月) 12:39 藤田卓 (OSGeoJapan-discuss 経由) <
>>> osgeojapan-discuss @ lists.osgeo.org>:
>>>
>>>> みなさま
>>>>
>>>> 日本自然保護協会の藤田と申します。
>>>> QGISについて1つ教えていただきたいことがあり、ご連絡いたしました。
>>>>
>>>>
>>>>
>>>> *【質問】*
>>>> QGISでshapeファイルのユニークID(地物毎に固有の値)を作成する際に、
>>>> 既存の地物だけでなく、新しく地物を追加した際に自動的にユニークIDが入力される方法
>>>> として、
>>>>
>>>> uuid() を使用する方法があるようですが
>>>> *uuid() 以外の 関数を用いて自動でユニークIDを入力できる方法はないでしょうか*
>>>> (もしくは uuid() を38文字より縮めるなどができるか?)
>>>>
>>>> *【質問した理由】*
>>>> *uuid()の場合、IDが38文字と長いため、ファイルサイズが大きくなる、扱いがやや面倒との懸念もあり*
>>>> $idなど、6~10桁などの数値など短いIDでユニークIDを自動生成できる方法で
>>>> 新しく地物を追加した際に自動的にユニークIDを 追加できないかと考えております
>>>>
>>>>
>>>> アドバイスいただけましたら幸いです
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 藤田卓        /  Dr. Taku FUJITA
>>>> (理学博士・ 技術士(環境部門)
>>>> *公益財団法人 日本自然保護協会(NACS-J**)*
>>>> *生物多様性保全部*
>>>> fujita @ nacsj.or.jphttps://www.nacsj.or.jp/
>>>> TEL: 03-3553-4101 (代表)
>>>> 〒104-0033 東京都中央区新川1-16-10 ミトヨビル2F
>>>> *★70周年キャンペーン★ **https://www.nacsj.or.jp/activist
>>>> <https://www.nacsj.or.jp/activist>*
>>>> [image: FB] <https://www.facebook.com/NACSJ>  [image: TW]
>>>> <https://twitter.com/NACSJ>   [image: Instagram]
>>>> <https://www.instagram.com/nacsj_official/>   [image: Youtube]
>>>> <https://www.youtube.com/channel/UClUy3wg5i1qB1GYT6YxRTDQ>
>>>>
>>>> _______________________________________________
>>>> OSGeoJapan-discuss mailing list
>>>> OSGeoJapan-discuss @ lists.osgeo.org
>>>> https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>>>
>>>
>>
>> --
>>
>>
>>
>>
>>
>>
>> 藤田卓        /  Dr. Taku FUJITA
>> (理学博士・ 技術士(環境部門)
>> *公益財団法人 日本自然保護協会(NACS-J**)*
>> *生物多様性保全部*
>> fujita @ nacsj.or.jphttps://www.nacsj.or.jp/
>> TEL: 03-3553-4101 (代表)
>> 〒104-0033 東京都中央区新川1-16-10 ミトヨビル2F
>> *★70周年キャンペーン★ **https://www.nacsj.or.jp/activist
>> <https://www.nacsj.or.jp/activist>*
>> [image: FB] <https://www.facebook.com/NACSJ>  [image: TW]
>> <https://twitter.com/NACSJ>   [image: Instagram]
>> <https://www.instagram.com/nacsj_official/>   [image: Youtube]
>> <https://www.youtube.com/channel/UClUy3wg5i1qB1GYT6YxRTDQ>
>>
>>

-- 






藤田卓        /  Dr. Taku FUJITA
(理学博士・ 技術士(環境部門)
*公益財団法人 日本自然保護協会(NACS-J**)*
*生物多様性保全部*
fujita @ nacsj.or.jphttps://www.nacsj.or.jp/
TEL: 03-3553-4101 (代表)
〒104-0033 東京都中央区新川1-16-10 ミトヨビル2F
*★70周年キャンペーン★ **https://www.nacsj.or.jp/activist
<https://www.nacsj.or.jp/activist>*
[image: FB] <https://www.facebook.com/NACSJ>  [image: TW]
<https://twitter.com/NACSJ>   [image: Instagram]
<https://www.instagram.com/nacsj_official/>   [image: Youtube]
<https://www.youtube.com/channel/UClUy3wg5i1qB1GYT6YxRTDQ>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20231113/40aaa83e/attachment-0001.htm>


OSGeoJapan-discuss メーリングリストの案内