打印

[推荐] 行迁移和约束失效举例

行迁移和约束失效举例

删除迁移行:
1.CHAINED_ROWS
2.sql>ANALYZE TABLE ORDERS LIST CHAINED ROWS
3.SELECT COUNT(*) FROM CHAINED_ROWS
WHERE OWNER_NAME='SCOTT'
AND TABLE_NAME='ORDERS';
4.CREATE TABLE TEMP_ORDERS AS
SELECT * FROM ORDERS
WHERE ROWID IN (SELECT HEAD_ROWID FROM CHAINED_ROWS
WHERE OWNER_NAME='SCOTT'
AND TABLE_NAME='ORDERS');
5.DELETE FROM ORDERS
WHERE ROWID IN (SELECT HEAD_ROWID FROM CHAINED_ROWS
WHERE OWNER_NAME='SCOTT'
AND TABLE_NAME='ORDERS');
6.INSERT INTO ORDERS
SELECT * FROM TEMP_ORDERS;
使用EXCEPTIONS表
SQL>ALTER TABLE HR.EMPLOYEES
ENABLE VALIDATE CONSTRAINT hr_dept_fk
EXCEPTIONS INTO system.exceptions;
SQL>SELECT rowid,empno,lastname,deptno
FROM hr.employees
WHERE rowid IN (SELECT row_id FROM exceptions);
SQL>UPDATES hr.employees set deptno=10
WHERE rowid=' '
SQL>COMMIT;
SQL>TRUNCATE TABLE exceptions;

TOP