我在oracle中有如下表结构:
create table uet_tmp_course
(
"COURSE_ID" NUMBER(4,0) NOT NULL ENABLE,
"CODE" VARCHAR2(10 BYTE) NOT NULL ENABLE,
"TITLE" VARCHAR2(50 BYTE) NOT NULL ENABLE,
"CREDIT_HRS" NUMBER(4,2) NOT NULL ENABLE,
"LEVEL_ID" NUMBER(2,0),
"STATUS" NUMBER(2,0),
"COURSE_TYPE_ID" VARCHAR2(50 BYTE),
"EQUIVALENCE" VARCHAR2(10 BYTE),
"LAB_CODE" VARCHAR2(10 BYTE),
CONSTRAINT "PK_COURSE1" PRIMARY KEY ("COURSE_ID"),
CONSTRAINT "UK_COURSE_CODE1" UNIQUE ("CODE")
);
我想用 course_id 而不是代码更新列 lab_code 的值(即第 8 列)。例如,在第一行而不是“SE-101L”,我想要“102”,即“SE-101L”的 course_id。我尝试过连接,但它们会导致错误,例如缺少括号或单行查询返回多于一行。如果有人可以提供帮助,我会很高兴。谢谢你。
这将更新course_id
相应lab_code
.
UPDATE a
FROM uet_tmp_course a
INNER JOIN uet_tmp_course b
ON a.LAB_CODE = b.CODE
SET a.LAB_CODE = b.course_id;
甲骨文
UPDATE
(SELECT t1.LAB_CODE as OLD, t2.course_id as NEW
FROM uet_tmp_course t1
INNER JOIN uet_tmp_course t2
ON t1.LAB_CODE = t2.CODE
) t
SET t.OLD = t.NEW
您还可以采取其他措施来防止每次更新行(请记住也在您的应用程序中进行管理):
alter table uet_tmp_course
add constraint FK_uet_tmp_course_lab
foreign key (lab_code) references uet_tmp_course(course_id)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句