oracle ALTER TABLE和SET值

8yparm6h  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(186)

我已经在table1中添加了一列t1_num,现在希望填充新添加的列。表1中每行的t1_num值应该是表2中显示的当前t1_id的次数。

CREATE TABLE table1 (
    t1_id
);

CREATE TABLE table2 (
    t2_id,
    t1_id
);

ALTER TABLE table1
ADD t1_num NUMBER(2) DEFAULT 0;
5sxhfpxr

5sxhfpxr1#

必须使用UPDATEset值。你可以试试这个。

UPDATE table1
SET t1_num = (
    SELECT COUNT(*) 
    FROM table2 
    WHERE table2.t1_id = table1.t1_id
);

上面的sql首先创建一个临时表,然后根据table1.id的条件将计数聚合到table1
您必须小心每列的大小。这里有ADD艾德t1_num,大小为(2)(两位数)。希望这将满足您的要求,因为它可以容纳的最大值是99

相关问题