QGISでspatialiteの地物をコピーした時

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

QGISでspatialiteの地物をコピーした時

kouichi kita

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません。
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: QGISでspatialiteの地物をコピーした時

Yoh Fukuda
喜多さま

こんにちは。福田です。

リングの充填は経験がないのですが、当方の環境では地物のコピーは
行うことができています。
(Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)

元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
(PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
それとも、別の方法でインポートしたものでしょうか。

通常は、主キーにAUTOINCREMENTというオプションが指定されている
ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
ようになっている、、と思います。

ちなみに、

Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?

については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
扱うことができます。同様に、QGISへ読み込むことができます。
ただし、表示や処理がとても重くなります。


福田 陽一朗

2016年10月19日 18:12 喜多耕一 <[hidden email]>:

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません。
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: QGISでspatialiteの地物をコピーした時

kouichi kita
福田さん

喜多です。
返信ありがとうござます。

推察の通り、Spatialite-guiで変換したSpatialiteレイヤです。
自宅でも試してみましたが、地物をコピーしたら、やはりPK_UIDが同じになってしまって、
そのままでは保存することができません。(添付を参照)
PK_UIDを削除して(NULLにして)保存すると、自動で番号が入力されます。
地物のコピーは同じレイヤ内で地物をコピーして貼り付けています

リングの充填では、新しいポリゴンができると、
元の地物と同じ属性データが自動的に入力された地物が、リングの中にできます。

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

主キーがないと、処理が重くなるんですね。
了解しました。

QGISは2.16.3 32bit、64bit両方で行っています。



北海道 喜多耕一


2016年10月19日 21:41 Yoh Fukuda <[hidden email]>:
喜多さま

こんにちは。福田です。

リングの充填は経験がないのですが、当方の環境では地物のコピー
行うことができています。
(Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)

元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
(PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
それとも、別の方法でインポートしたものでしょうか。

通常は、主キーにAUTOINCREMENTというオプションが指定されている
ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
ようになっている、、と思います。

ちなみに、

Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?

については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
扱うことができます。同様に、QGISへ読み込むことができます
ただし、表示や処理がとても重くなります。


福田 陽一朗

2016年10月19日 18:12 喜多耕一 <[hidden email]>:

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません。
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss



_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

Image 2016_10_19_220425.png (75K) Download Attachment
Image 2016_10_19_220715.png (20K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: QGISでspatialiteの地物をコピーした時

Yoh Fukuda
喜多さま

福田です。

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

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

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

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

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

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


福田 陽一朗


2016年10月19日 22:36 喜多耕一 <[hidden email]>:
福田さん

喜多です。
返信ありがとうござます。

推察の通り、Spatialite-guiで変換したSpatialiteレイヤです。
自宅でも試してみましたが、地物をコピーしたら、やはりPK_UIDが同じになってしまって、
そのままでは保存することができません。(添付を参照)
PK_UIDを削除して(NULLにして)保存すると、自動で番号が入力されます。
地物のコピーは同じレイヤ内で地物をコピーして貼り付けています

リングの充填では、新しいポリゴンができると、
元の地物と同じ属性データが自動的に入力された地物が、リングの中にできます。

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

主キーがないと、処理が重くなるんですね。
了解しました。

QGISは2.16.3 32bit、64bit両方で行っています。



北海道 喜多耕一


2016年10月19日 21:41 Yoh Fukuda <[hidden email]>:

喜多さま

こんにちは。福田です。

リングの充填は経験がないのですが、当方の環境では地物のコピー
行うことができています。
(Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)

元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
(PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
それとも、別の方法でインポートしたものでしょうか。

通常は、主キーにAUTOINCREMENTというオプションが指定されている
ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
ようになっている、、と思います。

ちなみに、

Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?

については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
扱うことができます。同様に、QGISへ読み込むことができます
ただし、表示や処理がとても重くなります。


福田 陽一朗

2016年10月19日 18:12 喜多耕一 <[hidden email]>:

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss




_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

=?UTF-8?B?MDFf57eo6ZuG44Oi44O844OJLmpwZw==?= (37K) Download Attachment
=?UTF-8?B?MDJf5pu05paw5b6MLmpwZw==?= (42K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: QGISでspatialiteの地物をコピーした時

kouichi kita

福田さま

喜多です。
原因がわかりました。
データをレイヤに追加するとき、Spatialiteレイヤの追加でなく、ベクタレイヤの追加もしくはドラッグ&ドロップで追加した場合、主キーがそのままコピーされます。
Spatialiteレイヤの追加で追加すると、主キーがNULLでコピーされます。

ありがとうございました。

北海道 喜多耕一


2016/10/20 9:16 "Yoh Fukuda" <[hidden email]>:
喜多さま

福田です。

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

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

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

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

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

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


福田 陽一朗


2016年10月19日 22:36 喜多耕一 <[hidden email]>:
福田さん

喜多です。
返信ありがとうござます。

推察の通り、Spatialite-guiで変換したSpatialiteレイヤです。
自宅でも試してみましたが、地物をコピーしたら、やはりPK_UIDが同じになってしまって、
そのままでは保存することができません。(添付を参照)
PK_UIDを削除して(NULLにして)保存すると、自動で番号が入力されます。
地物のコピーは同じレイヤ内で地物をコピーして貼り付けています

リングの充填では、新しいポリゴンができると、
元の地物と同じ属性データが自動的に入力された地物が、リングの中にできます。

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

主キーがないと、処理が重くなるんですね。
了解しました。

QGISは2.16.3 32bit、64bit両方で行っています。



北海道 喜多耕一


2016年10月19日 21:41 Yoh Fukuda <[hidden email]>:

喜多さま

こんにちは。福田です。

リングの充填は経験がないのですが、当方の環境では地物のコピー
行うことができています。
(Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)

元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
(PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
それとも、別の方法でインポートしたものでしょうか。

通常は、主キーにAUTOINCREMENTというオプションが指定されている
ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
ようになっている、、と思います。

ちなみに、

Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?

については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
扱うことができます。同様に、QGISへ読み込むことができます
ただし、表示や処理がとても重くなります。


福田 陽一朗

2016年10月19日 18:12 喜多耕一 <[hidden email]>:

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss




_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: QGISでspatialiteの地物をコピーした時

Yoh Fukuda
喜多さま

福田です。

なるほど、レイヤの追加方法の問題だったのですね。

「SpatiaLiteレイヤの追加」から追加するのが当たり前に
なっていて、思い至りませんでした。。。


福田 陽一朗

2016年10月20日 16:21 喜多耕一 <[hidden email]>:

福田さま

喜多です。
原因がわかりました。
データをレイヤに追加するとき、Spatialiteレイヤの追加でなく、ベクタレイヤの追加もしくはドラッグ&ドロップで追加した場合、主キーがそのままコピーされます。
Spatialiteレイヤの追加で追加すると、主キーがNULLでコピーされます。

ありがとうございました。

北海道 喜多耕一


2016/10/20 9:16 "Yoh Fukuda" <[hidden email]>:

喜多さま

福田です。

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

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

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

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

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

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


福田 陽一朗


2016年10月19日 22:36 喜多耕一 <[hidden email]>:
福田さん

喜多です。
返信ありがとうござます。

推察の通り、Spatialite-guiで変換したSpatialiteレイヤです。
自宅でも試してみましたが、地物をコピーしたら、やはりPK_UIDが同じになってしまって、
そのままでは保存することができません。(添付を参照)
PK_UIDを削除して(NULLにして)保存すると、自動で番号が入力されます。
地物のコピーは同じレイヤ内で地物をコピーして貼り付けています

リングの充填では、新しいポリゴンができると、
元の地物と同じ属性データが自動的に入力された地物が、リングの中にできます。

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

主キーがないと、処理が重くなるんですね。
了解しました。

QGISは2.16.3 32bit、64bit両方で行っています。



北海道 喜多耕一


2016年10月19日 21:41 Yoh Fukuda <[hidden email]>:

喜多さま

こんにちは。福田です。

リングの充填は経験がないのですが、当方の環境では地物のコピー
行うことができています。
(Win10、QGIS2.16.2-62bit、SpatiaLiteバージョン4.3.0)

元のデータは、SpatiaLite-guiでshpをインポートしたものでしょうか。
(PK_UIDという主キー名からしてそうではないかな…と思うのですが、)
それとも、別の方法でインポートしたものでしょうか。

通常は、主キーにAUTOINCREMENTというオプションが指定されている
ので、地物をコピーした際に、自動的に新しいIDが付与されて、重複しない
ようになっている、、と思います。

ちなみに、

Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?

については、ユニークな主キーがなくてもジオメトリを持つテーブルとして
扱うことができます。同様に、QGISへ読み込むことができます
ただし、表示や処理がとても重くなります。


福田 陽一朗

2016年10月19日 18:12 喜多耕一 <[hidden email]>:

みなさま

いつもお世話になっています。北海道の喜多です。
QGISでSpatialite使おうとしていますが、地物をコピーした時や、リングの充填を行ったときに、主キーである「PK_UID」がダブってしまい、データを保存することができません
Spatialiteでは、必ずユニークな主キーが必要なのでしょうか?
または、地物のコピーなどでも「PK_UID」を自動で更新される設定はありますか?

よろしくお願いします。

北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss





_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss