[英]Modifying a SQL table to insert data from an existing row into the previous row
[英]oracle sql: insert spatial data from more existing table
我创建了一个表umriss
,并用数据填充了该表,但仍然需要从现有表( usrdemo.glets_1850
, usrdemo.glets_1973
,...)中插入几何数据。 这是如何运作的?
umriss
是一个“弱实体”,并引用了表gletscherstand
( glst_id
)和gletscher
( gletscher_id
)
create table umriss
(
umr_nr number (4) not null,
umr_datum date,
GLST_ID number (4) not null,
shape mdsys.sdo_geometry,
GLETSCHER_ID number (3) not null,
se_anno_cad_data blob
);
alter table umriss
add constraint umriss_glst_pk
primary key (umr_nr, GLST_ID, GLETSCHER_ID);
ALTER TABLE umriss
ADD CONSTRAINT umriss_gletscherstand_fk
FOREIGN KEY (GLST_ID, GLETSCHER_ID)
REFERENCES GLETSCHERSTAND(GLST_ID, GLETSCHER_ID);
我手动插入了属性umr_nr
, umr_datum
, glst_id
和gletscher_id
。 正如你可以看到从umr_nr
有3种形状,我现在想从添加空间数据usrdemo_glets_1850
其中有3种形状和属性: objectid
(= umr_nr
表umriss
), shape
和se_anno_cad_data
。
我试过了
INSERT INTO umriss u
(u.shape, u.se_anno_cad_data)
SELECT usrdemo.glets_1850.shape, usrdemo.glets_1850.se_anno_cad_data
FROM usrdemo.glets_1850;
...并收到消息:Ora-01400-无法将NULL插入...“ umriss”。“ umr_nr”
这是如何运作的?
您haved试图插入新的记录表umriss
无主键列设置值umr_nr
。
如果我正确理解,您已经将记录手动插入到表umriss
,现在您需要做的只是添加其他列,那么您应该改用UPDATE
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.