[OSGeoJapan-discuss] QGISでspatialiteの地物をコピーした時

Yoh Fukuda yoh.fukuda @ gmail.com
2016年 10月 19日 (水) 17:16:28 PDT


喜多さま

福田です。

添付画像を拝見しました。当方では、地物をコピー&ペーストすると、
編集モードの間はPK_UIDがNULLの状態でレコードが挿入され、
その後編集モードを解除して保存した段階でキーが更新されます。
(添付画像)

ペーストしたレコードは常に最終行の下に追加されるのですが、
喜多さんの画像を拝見すると、コピーしたレコードのすぐ下に挿入
されているようですね。。

経験的に、SpatiaLite/SQLiteのレイヤに対してQGIS側で地物の
コピーなど、データベースにレコードを 追加する際には、自動的に主
キーはNULLにするようになっていると思うので、喜多さんの現象は
環境によるバグなのかもしれません。

現状では、コピーした地物のPK_UIDを削除するしかなさそうですね。


そうかもしれません。
それほど地物数が多くないようでしたら、一時的に主キーのないテーブル
を作成して、一通り編集が完了したら再度主キーを持つテーブルに
戻す、ということも可能ではあります。

ちなみにレコードを挿入するときに、トリガーを使って自動的にPK_UIDを
NULLにできるかな、と思って試してみたのですが、そうすると逆に更新を
保存してもNULLになってしまいました^^;


福田 陽一朗


2016年10月19日 22:36 喜多耕一 <kou35tochas @ gmail.com>:

> 福田さん
>
> 喜多です。
> 返信ありがとうござます。
>
> 推察の通り、Spatialite-guiで変換したSpatialiteレイヤです。
> 自宅でも試してみましたが、地物をコピーしたら、やはりPK_UIDが同じになってしまって、
> そのままでは保存することができません。(添付を参照)
> PK_UIDを削除して(NULLにして)保存すると、自動で番号が入力されます。
> 地物のコピーは同じレイヤ内で地物をコピーして貼り付けています。
>
> リングの充填では、新しいポリゴンができると、
> 元の地物と同じ属性データが自動的に入力された地物が、リングの中にできます。
>
> 現状では、コピーした地物のPK_UIDを削除するしかなさそうですね。
>
> 主キーがないと、処理が重くなるんですね。
> 了解しました。
>
> QGISは2.16.3 32bit、64bit両方で行っています。
>
>
>
> 北海道 喜多耕一
>
>
> 2016年10月19日 21:41 Yoh Fukuda <yoh.fukuda @ gmail.com>:
>
> 喜多さま
>>
>> こんにちは。福田です。
>>
>> リングの充填は経験がないのですが、当方の環境では地物のコピーは
>> 行うことができています。
>> (Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)
>>
>> 元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
>> (PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
>> それとも、別の方法でインポートしたものでしょうか。
>>
>> 通常は、主キーにAUTOINCREMENTというオプションが指定されている
>> ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
>> ようになっている、、と思います。
>>
>> ちなみに、
>>
>> Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
>>
>>
>> については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
>> 扱うことができます。同様に、QGISへ読み込むことができます。
>> ただし、表示や処理がとても重くなります。
>>
>>
>> 福田 陽一朗
>>
>> 2016年10月19日 18:12 喜多耕一 <kou35tochas @ gmail.com>:
>>
>>> みなさま
>>>
>>> いつもお世話になっています。北海道の喜多です。
>>> QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK
>>> _UID」がダブってしまい、データを保存することができません。
>>> Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
>>> または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?
>>>
>>> よろしくお願いします。
>>>
>>> 北海道 喜多耕一
>>>
>>> _______________________________________________
>>> OSGeoJapan-discuss mailing list
>>> OSGeoJapan-discuss @ lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>>
>>
>>
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161020/679851db/attachment-0001.html>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 01_編集モード.jpg
型:         image/jpeg
サイズ:     28246 バイト
説明:       無し
URL:        <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161020/679851db/attachment-0002.jpg>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 02_更新後.jpg
型:         image/jpeg
サイズ:     31662 バイト
説明:       無し
URL:        <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161020/679851db/attachment-0003.jpg>


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