'What is wrong with this 'ALTER TABLE' command?
Here is the command;
ALTER TABLE product
ADD CONSTRAINT prod_cust_fk
FOREIGN KEY (cust_id) REFERENCES customer (cust_id) ENABLE;
ALTER TABLE product
ADD CONSTRAINT prod_sto_fk
FOREIGN KEY (sto_id) REFERENCES bakery (sto_id) ENABLE;
ALTER TABLE product
ADD CONSTRAINT prod_sup_fk
FOREIGN KEY (sup_id) REFERENCES supplier (sup_id) ENABLE;
CREATE INDEX prod_cust_ix ON product (cust_id);
CREATE INDEX prod_sto_ix ON product (sto_id);
CREATE INDEX prod_sup_ix ON product (sup_id);
The result:
"ORA-01735: invalid ALTER TABLE option
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_210200", line 673ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_210200", line 659
ORA-06512: at "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", line 1829REFERENCES bakery (sto_id) ENABLE;
ALTER TABLE product ADD CONSTRAINT prod_sup_fk FOREIGN KEY (sup_id) REFERENCES supplier (sup_id) ENABLE;
CREATE INDEX prod_cust_ix ON product (cust_id);
CREATE INDEX prod_sto_ix ON product (sto_id);"
The table product
CREATE TABLE product
(
prod_id VARCHAR2(10) CONSTRAINT prod_id_nn NOT NULL ENABLE,
prod_price NUMBER(3, 2) CONSTRAINT prod_price_nn NOT NULL ENABLE,
prod_avail VARCHAR2(20) CONSTRAINT prod_avail_nn NOT NULL ENABLE,
prod_mdate DATE CONSTRAINT prod_mdate_nn NOT NULL ENABLE,
prod_edate DATE CONSTRAINT prod_edate_nn NOT NULL ENABLE,
cust_id NUMBER(4, 0),
sto_id VARCHAR(8) CONSTRAINT sto_id_nn NOT NULL ENABLE,
sup_id VARCHAR(10),
CONSTRAINT prod_id_pk PRIMARY KEY (prod_id) USING INDEX ENABLE,
CONSTRAINT prod_date_interval CHECK (prod_edate > prod_mdate) ENABLE
Table customer
CREATE TABLE customer
(
cust_id NUMBER(4,0) CONSTRAINT cust_id_nn NOT NULL ENABLE,
cust_name VARCHAR2(500),
cust_phone NUMBER(20),
cust_add VARCHAR2(1000),
cust_email VARCHAR2(400),
CONSTRAINT customer_cust_id_pk PRIMARY KEY (cust_id) ENABLE
);
Table bakery
CREATE TABLE bakery
(
sto_id VARCHAR(8),
sto_phone NUMBER(20) CONSTRAINT sto_phone_nn NOT NULL ENABLE,
sto_add VARCHAR2(500) CONSTRAINT sto_add_nn NOT NULL ENABLE,
sto_email VARCHAR2(400) CONSTRAINT sto_email_nn NOT NULL ENABLE,
CONSTRAINT sto_id_pk PRIMARY KEY (sto_id) USING INDEX ENABLE
);
Table supplier
CREATE TABLE supplier
(
sup_id VARCHAR2(10) CONSTRAINT sup_id_nn NOT NULL ENABLE,
sup_name VARCHAR2(500) CONSTRAINT sup_name_NN NOT NULL ENABLE,
sup_add VARCHAR2(500) CONSTRAINT sup_add_nn NOT NULL ENABLE,
CONSTRAINT sup_id_pk PRIMARY KEY (sup_id) USING INDEX ENABLE
);
I'm using Oracle APEX 21.2.0
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
