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

藤田卓 fujita @ nacsj.or.jp
2023年 11月 12日 (日) 22:53:42 PST


田鎖さま

早速ありがとうございます
藤田です

concat(format_date(now(),'yyMMdd'),right(left(uuid(),4),3))
これで完璧だと思いました
テストしたら正常に動作しました!!!
感謝感謝です

さすがに1日の間に3桁で重複はないだろうと思うので、これで重複のリスクなしで、今後も追加することができると思いました

積年の課題が一気に解決して、本当に助かりました

ありがとうございます



2023年11月13日(月) 15:35 Junta TAGUSARI (OSGeoJapan-discuss 経由) <
osgeojapan-discuss @ lists.osgeo.org>:

> 藤田様
>
> 自動で採番する方法,など考えてもみなかったので,逆に勉強になっています。
> たとえば,整数フィールドnに連番を入れるなら,次のようにすれば良いようです。
>
> IF(maximum("n") is NULL, 1 , maximum("n") + 1)
>
> qgis - Unable to get correct @row_number in Attribute Table - Geographic
> Information Systems Stack Exchange
> <https://gis.stackexchange.com/questions/359757/unable-to-get-correct-row-number-in-attribute-table>
>
> ただ,この方法は,お気づきの通り,レイヤが複数存在すると,同じ連番の地物が複数出てきます。
> レイヤが複数あるならば,uuid等のハッシュを使った方が安全です。
>
> ちなみに,タイムスタンプを組み合わせることで,uuidの衝突リスクはさらに下げることができますね。
> (タイムスタンプのみを使ったためか衝突が大問題になったのが,例のマイナンバーカードでした。)
> たとえば,次のようにyyMMddとuuid(の一部)をidに使うことにすれば,年月日が異なる場合の衝突は100%防げます。
> uuidは3桁もあれば十分かもしれません。
>
> concat(format_date(now(),'yyMMdd'),right(left(uuid(),4),3))
>
> 色々な方法,何が良いかは,ケースバイケースかと思います。
> ご参考になれば。
>
> 田鎖
>
> On 2023/11/13 15:11, 藤田卓 (OSGeoJapan-discuss 経由) wrote:
>
> かやまさま
>
> 早速アドバイスいただきありがとうございます
> 藤田です
>
> >ベクタのレイヤを作成した後 プロセッシングツールボックス -> ベクタテーブル ->  自動インクリメント属性を追加 で可能かもしれません。
>> 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>
>
>
> _______________________________________________
> OSGeoJapan-discuss mailing listOSGeoJapan-discuss @ lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
> _______________________________________________
> 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>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20231113/06948a93/attachment-0001.htm>


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