Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Mischen von DDL- und DML-Anweisungen in einem einzigen Skript

Eine effiziente Möglichkeit, diesen Wert festzulegen, wäre:

UPDATE RETAILER SET RETAILER_ID = ROWNUM;

... und dann die Sequenz erstellen, die Anzahl der Zeilen in RETAILER lesen, um den START WITH-Wert festzulegen (ein bisschen triviales PL/SQL und dynamisches SQL).

12c unterstützt:

CREATE SEQUENCE RETAILER_ID_SEQ;
ALTER TABLE RETAILER ADD (RETAILER_ID NUMBER DEFAULT RETAILER_ID_SEQ.NEXTVAL NOT NULL );

... übrigens, also keine Notwendigkeit, einen eigenen Trigger zu definieren.

http://docs.oracle.com/database/121/SQLRF/statements_3001 .htm