Oracle 19c 不支持“按引用分区”吗?
由于某种原因,当我在创建表时尝试通过引用分区时,我的 IDE (Intellij) 不断抱怨,说: “预期为 HASH、LIST、RANGE、SQL_REFERENCE 或 SYSTEM,得到“REFERENCE””
我查了Oracle版本,这是Oracle 19c。
我尝试按列表分区,这有效。
我尝试创建父表和子表,并将主键和外键定义为表约束而不是列约束。不起作用。
我尝试了在这里找到的示例:
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
order_date DATE NOT NULL,
customer_id NUMBER NOT NULL,
shipper_id NUMBER)
PARTITION BY RANGE (order_date) (
PARTITION y1 VALUES LESS THAN (TO_DATE('01-JAN-2006', 'DD-MON-YYYY')),
PARTITION y2 VALUES LESS THAN (TO_DATE('01-JAN-2007', 'DD-MON-YYYY')),
PARTITION y3 VALUES LESS THAN (TO_DATE('01-JAN-2008', 'DD-MON-YYYY')));
CREATE TABLE order_items (
order_id NUMBER NOT NULL,
product_id NUMBER NOT NULL,
price NUMBER,
quantity NUMBER,
CONSTRAINT order_items_fk FOREIGN KEY (order_id) REFERENCES orders)
PARTITION BY REFERENCE (order_items_fk);
这也行不通...
但是在 Oracle SQL Developer 中确实有效!
这是什么原因造成的? 可能是一些非常愚蠢的错误? (我希望)
引用分区基于父表的主约束和子表的外键约束。分区键应该是主键列。在您的示例中,您按没有主键的日期列进行分区。