Below SQL statement captures the foreign key information.
SELECT 'ALTER TABLE ' || RTRIM(a.tabschema)||'.'||RTRIM(a.tabname) || ' ADD CONSTRAINT '||a.constname|| ' FOREIGN KEY (' || fk_colnames || ') REFERENCES ' || RTRIM(reftabschema)||'.'||RTRIM(reftabname) || ' ('||pk_colnames||') ON DELETE ' || CASE deleterule WHEN 'A' THEN 'NO ACTION' WHEN 'C' THEN 'CASCADE' WHEN 'N' THEN 'SET NULL' WHEN 'R' THEN 'RESTRICT' END || ' ON UPDATE ' || CASE updaterule WHEN 'A' THEN 'NO ACTION' WHEN 'R' THEN 'RESTRICT' END || CASE enforced WHEN 'Y' THEN ' ENFORCED ' WHEN 'N' THEN ' NOT ENFORCED ' END || ' QUERY OPTIMIZATION '|| CASE enablequeryopt WHEN 'Y' THEN ' ENABLE ' WHEN 'N' THEN ' DISABLE 'END || ';' FROM syscat.references a, syscat.tabconst b WHERE a.constname=b.constname;
Below SQL statement generates the DROP FOREIGN KEY statements to DROP the foreign keys for table ORDER_DETAILS.
SELECT 'ALTER TABLE ' || RTRIM(tabschema)||'.'||RTRIM(tabname) || ' DROP FOREIGN KEY ' || constname || ';' FROM syscat.references WHERE (tabschema='?SCHEMA?' AND tabname='ORDER_DETAILS') OR (reftabschema='?SCHEMA?' AND reftabname='ORDER_DETAILS');