Daha çox

Spatialite-də əsas və xarici açar yaradın


Mekansalitdə bir verilənlər bazası yaratmağa çalışıram (müxtəlif səbəblərdən PostGis-dən istifadə edə bilmirəm). Xarici bir açar istifadə edərək bir masanı başqasına bağlamalıyam. Spatialite ilə bağlı problem ondan sonra əsas düyməni təyin etmək mümkün olmamasıdır, buna görə "C_SGE_15" ibtidai açarı ilə yeni bir cədvəl (tMAJ_TBE_REB_15₂) yaradıram (sıfır dəyəri olmayan sahə və misilsiz dəyərlərdir) və sonra cəhd edirəm məzmunu digərindən kopyalamaq (standart PUIK əsas düyməsini əldə etmiş).

Bu əmri başlatdığım zaman bu səhv mesajını alıram.

Python kodu açıqlanmadı: Traceback (son zəng son): "C: / Documents and Settings / XXXXXXX / .qgis2 / python / plugins  QspatiaLite  QspatiaLiteApp.py" sətri, 178 runQuery header, data = self.db.executeQuery (sorğu) File "C: / Documents and Settings / XXXXXXX / .qgis2 / python / plugins  QspatiaLite  Classes  Database.py", line 51, in executeQuery cursor.execute (query) , params) IntegrityError: C_SGE_15 sütunu unikal deyil Version de Python: 2.7.4 (standart, 6 Noyabr 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] Version de QGIS: 2.8.2-Wien Wien, 1b929ef Chemin vers Python: ['C: / Documents and Settings / XXXXXXX / .qgis2 / python / plugins  processing', 'C: / PROGRA ~ 1 / QGISWI ~ 1 / apps / qgis /./ python', u'C: / Documents and Settings / XXXXXXX / .qgis2 / python ', u'C: / Documents and Settings / XXXXXXX / .qgis2 / python / plugins', 'C: / PROGRA ~ 1 / QGISWI ~ 1 / apps / qgis /./ python / plugins ',' C:  PROGRA ~ 1  QGISWI ~ 1  bin  python27.zip ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  DLLs ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  P ython27  lib ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  plat-win ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  lib-tk ',' C:  PROGRA ~ 1  QGISWI ~ 1  bin ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27 ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-pack ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  PIL ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  jinja2-2.7.2-py2 .7.egg ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  markupsafe-0.23-py2.7-win32.egg ',' C :  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  python_dateutil-2.2-py2.7.egg ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  pytz-2014.2-py2.7.egg ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  win32 ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  win32  lib ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  Pythonwin ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib   site-packages  Shapely-1.2.18-py2.7-win32.egg ',' C :  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  six-1.6.1-py2.7.egg ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  Python27  lib  site-packages  wx-2.8-msw-unicode ', u'C: / Documents and Settings / XXXXXXX / .qgis2 // python', 'C:   Documents and Settings  XXXXXXX . Qgis2  python  plugins  DigitizingTools  tools ',' C:  Documents and Settings  XXXXXXX . Qgis2  python  plugins  mmqgis / formaları ',' C:  PROGRA ~ 1  QGISWI ~ 1  apps  qgis  python  plugins  fTools  tools ',' C: / XXX / MAJ_TBE_REB ']

Fikrimə davam etmək üçün C_SGE_15 sahəsini istifadə edərək təsviri və s. Ehtiva edən başqa bir tMAJ_TBE_REB_15₂ cədvəlinə istifadə edərək coğrafi cədvəl bağlantısına sahib olmaq istərdim. Məqsəd istifadəsi asan bir forma yaratmaqdır. Bunu Qspatialite və Qgis 2.8.2-də edirəm.

'TMAJ_TBE_REB_15_2' ('C_SGE_09' Mətn, 'MODIF_15' INTEGER, 'TypModif15' MƏTN, 'C_SGE_15' MƏTN DÜŞÜM İLK AÇAR, 'NOM_09' Mətn, 'NOM_15' TEXER 'TEXT,' MEXT, ' 'REB_09' INTEGER, 'REB_15' INTEGER, 'Espec_pres' TEXT, 'Obs_2009' TEXT, 'Obs_2015' MEXT) INSERT INTO "tMAJ_TBE_REB_15_1" ('C_SGE_09', 'MODIF_15', '15, N9, , 'NOM_15', 'TBE_09', 'TBE_15', 'REB_09', 'REB_15', 'Espec_pres', 'Obs_2009', 'Obs_2015') SELECT 'C_SGE_09', 'MODIF_15', 'TypModif15', 'C_SGE_15,' 'NOM_09', 'NOM_15', 'TBE_09', 'TBE_15', 'REB_09', 'REB_15', 'Espec_pres', 'Obs_2009', 'Obs_2015', FROM "Modifs_MAJ_TBE_REB_15"

Heç kim səhvin haradan gəldiyini görür?


Təkrarlanan C_SGE_15 dəyərinin olmadığına əminsiniz? Buradan yoxlaya bilərsiniz:

"Modifs_MAJ_TBE_REB_15" SAYISINDAN SEÇİN (*) AS t1 JOIN "Modifs_MAJ_TBE_REB_15" AS t2 ON t1.C_SGE_15 = t2.C_SGE_15 WHERE t1.ROWID 

Bir sayma> 0 alsanız, eyni C_SGE_15 ilə birdən çox satır var.


Videoya baxın: #How to Create Many to Many relationship in Microsoft Access #Composite Key#Primary Key#Relationship (Oktyabr 2021).