我有2张桌子。 (table1,table2) 现在,我想做一些事情:
ALTER TABLE table1
ADD counter INT DEFAULT (Select COUNT(table2.car_type)
FROM table2
WHERE (table1.car_type = table2.car_type));
这是我能提出的最接近的语法,但仅仅通过观察它我知道它是错的。请告诉我如何在一个SQL语句中执行此操作(如果可能)。
目标表(使用计数器实现)是这样的:(用 - 分隔列)
表1:
pid-car_type-counter
:
1-Honda-2
2-Toyota-3
3-Suzuki-1
4-Ferrari-0
5-Porsche-1
表2:
pid-car_type
:
1-Honda
2-Toyota
3-Porsche
4-Honda
5-Suzuki
6-Toyota
7-Toyota
答案 0 :(得分:0)
我认为你不能这样做,至少11g。 FTFM:
对默认列值的限制:DEFAULT表达式不能 包含对PL / SQL函数或其他列的引用 伪列CURRVAL,NEXTVAL,LEVEL,PRIOR和ROWNUM,或日期 未完全指定的常量。
我非常肯定你也不能在DEFAULT子句中使用SELECT语句。虚拟列可能有一种方法。另一种方法是创建一个视图。