samenvatting: in deze tutorial leert u hoe u de Oracle identity column kunt gebruiken om eenvoudig een automatisch gegenereerde numerieke kolom voor een tabel te definiëren.

Introduction to Oracle identity column

Oracle 12c introduceerde een nieuwe manier waarmee u een identiteitskolom kunt definiëren voor een tabel, die vergelijkbaar is met de AUTO_INCREMENT kolom in MySQL of IDENTITY kolom in SQL Server.

de kolom identiteit is zeer nuttig voor de kolom met de surrogaathoofdsleutel., Wanneer u een nieuwe rij invoegt in de kolom identiteit, genereert Oracle automatisch een opeenvolgende waarde en voegt deze in de kolom in.

om een identiteitskolom te definiëren, gebruikt u de identiteitsclausule zoals hieronder getoond:

eerst is het sleutelwoord GENERATED verplicht.

ten tweede kunt u een optie opgeven om identiteitswaarden te genereren:

  • GENERATED ALWAYS: Oracle genereert altijd een waarde voor de kolom identiteit. Poging om een waarde in te voegen in de kolom identiteit zal een fout veroorzaken.,
  • GENERATED BY DEFAULT: Oracle genereert een waarde voor de kolom identiteit als u geen waarde opgeeft. Als u een waarde opgeeft, voegt Oracle die waarde in de kolom identiteit in. Voor deze optie geeft Oracle een fout uit als u een NULL-waarde invoegt in de kolom identiteit.
  • GENERATED BY DEFAULT ON NULL: Oracle genereert een waarde voor de kolom identiteit als u een NULL-waarde of helemaal geen waarde opgeeft.

Ten derde kunt u een aantal opties hebben voor de kolom identiteit.,

  • START WITH initial_value bepaalt de initiële waarde voor de kolom identiteit. De standaard beginwaarde is 1.
  • INCREMENT BY internval_value definieert het interval tussen gegenereerde waarden. Standaard is de intervalwaarde 1.
  • definieert een aantal waarden die Oracle vooraf moet genereren om de prestaties te verbeteren. U gebruikt deze optie voor de kolom met een groot aantal inserts.

Oracle identity column examples

laten we enkele voorbeelden nemen van het gebruik van de Oracle identity columns.,

A) gegenereerd altijd voorbeeld

het volgende statement maakt een tabel met de naam identity_demo die bestaat uit een identiteitskolom:

het volgende statement voegt een nieuwe rij in de identity_demo tabel:

omdat we geen waarde hebben opgegeven voor de kolom id, genereerde Oracle automatisch een sequentiële waarde vanaf 1.,

De volgende verklaring probeert te plaatsen van een waarde in het id identity kolom:

Oracle heeft een fout:

Omdat de id-kolom is gedefinieerd als GENERATED ALWAYS, het kon niet accepteren dat de verstrekte waarde.,

B) GENERATED BY DEFAULT example

Let’s change the id column to GENERATED BY DEFAULT:

The following statement inserts a new row into the identity_demo table:

It worked as expected.,

het volgende statement voegt een nieuwe rij in de identity_demo tabel met een opgegeven waarde voor de id kolom:

In dit voorbeeld gebruikte Oracle de opgegeven waarde en plaatste deze in de tabel.,Eerste, herschept de identity_demo tabel waarvan u de id kolom is gedefinieerd als identiteit kolom met de initiële waarde gaat uit van 100:

ten Tweede, het invoegen van een rij in de identity_demo tabel:

ten Derde, een query gegevens uit het identity_demo tabel:

Zoals je kan zien, de initiële waarde van de id kolom is 100 als bedoeld in identiteit component.,

e) INCREMENT BY option example

verander eerst de id-kolom van de identity_demo tabel die zowel START WITH en INCREMENT BY opties bevat.

tweede, voeg twee rijen in de identity_demo tabel:

derde, querygegevens uit de tabel om de inserts te verifiëren:

zoals u kunt zien, heeft de eerste rij de ID-waarde 10. De tweede rij heeft de id waarde 20., Dit is wat we hebben gedefinieerd voor de id-kolom die moet beginnen met 10 en verhogen met 10 voor de nieuwe rij.

Oracle identity column restrictions

De identity columns zijn onderworpen aan de volgende restricties:

  • elke tabel heeft één en slechts één identity column.
  • het gegevenstype van de kolom identiteit moet een numeriek gegevenstype zijn. het door de gebruiker gedefinieerde gegevenstype mag niet worden gebruikt met de identiteitsclausule.
  • de kolom identiteit wordt niet overgenomen door het CREATE TABLE AS SELECTstatement.,
  • de kolom identiteit kan geen andere DEFAULT beperking hebben.
  • het versleutelingsalgoritme voor versleutelde identiteitskolommen kan worden afgeleid, daarom moet u een sterk versleutelingsalgoritme gebruiken.
  • de inline beperking van de kolom identiteit mag niet conflicteren met de NOT NULL en NOT DEFERRABLE beperking die wordt aangegeven door de identiteitsclausule.

In deze tutorial hebt u geleerd hoe u de kolom Oracle identity kunt gebruiken waarmee u eenvoudig een automatisch gegenereerde numerieke kolom voor een tabel kunt definiëren.,

  • Was deze tutorial nuttig?
  • YesNo

Articles

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *