Articles

Oracle ALTER TABLE ADD Column By Examples

Posted on

Samenvatting: in deze tutorial leert u hoe u het Oracle ALTER TABLE ADD column statement kunt gebruiken om een of meer kolommen aan een tabel toe te voegen.

Om een nieuwe kolom aan een tabel toe te voegen, gebruikt u het ALTER TABLE statement als volgt:

ALTER TABLE table_name ADD column_name data_type constraint;

In dit statement:

  • Eerst geeft u de naam op van de tabel, waaraan u de nieuwe kolom wilt toevoegen, na de ALTER TABLE-clausule.
  • Tweede specificeert u de naam van de kolom, het gegevenstype en de restrictie.

Merk op dat u geen kolom kunt toevoegen die al in de tabel bestaat; een poging daartoe zal een fout veroorzaken. Bovendien voegt het kolomstatement ALTER TABLE ADD de nieuwe kolom aan het eind van de tabel toe. Oracle biedt geen directe manier om de positie van de nieuwe kolom te specificeren zoals andere databasesystemen zoals MySQL.

In het geval dat u meer dan één kolom wilt toevoegen, gebruikt u de volgende syntaxis:

In deze syntaxis scheidt u twee kolommen door een komma.

Oracle ALTER TABLE ADD column examples

Laten we een tabel maken met de naam members voor de demonstratie.

CREATE TABLE members( member_id NUMBER GENERATED BY DEFAULT AS IDENTITY, first_name VARCHAR2(50), last_name VARCHAR2(50), PRIMARY KEY(member_id));

Het volgende statement voegt een nieuwe kolom genaamd birth_date toe aan de members tabel:

ALTER TABLE members ADD birth_date DATE NOT NULL;

In dit voorbeeld is de birth_date kolom een DATE kolom en deze accepteert geen null.

Voorstel dat u de tijd wilt vastleggen waarop een rij is aangemaakt en bijgewerkt. Daartoe moet u twee kolommen created_at en updated_at als volgt toevoegen:

ALTER TABLE members ADD( created_at TIMESTAMP WITH TIME ZONE NOT NULL, updated_at TIMESTAMP WITH TIME ZONE NOT NULL );

De datatypes van de created_at en updated_at kolommen zijn TIMESTAMP WITH TIME ZONE. Deze kolommen accepteren ook geen null.

Om te controleren of een kolom in een tabel bestaat, vraagt u de gegevens op vanuit de user_tab_cols-weergave. Het volgende statement controleert bijvoorbeeld of de tabel members de kolom first_name bevat.

SELECT COUNT(*)FROM user_tab_colsWHERE column_name = 'FIRST_NAME' AND table_name = 'MEMBERS';

Deze query komt van pas als u wilt controleren of een kolom in een tabel bestaat voordat u deze toevoegt.

Het volgende PL/SQL blok controleert bijvoorbeeld of de members tabel een effective_date kolom heeft voordat deze wordt toegevoegd.

SET SERVEROUTPUT ON SIZE 1000000DECLARE v_col_exists NUMBER BEGIN SELECT count(*) INTO v_col_exists FROM user_tab_cols WHERE column_name = 'EFFECTIVE_DATE' AND table_name = 'MEMBERS'; IF (v_col_exists = 0) THEN EXECUTE IMMEDIATE 'ALTER TABLE members ADD effective_date DATE'; ELSE DBMS_OUTPUT.PUT_LINE('The column effective_date already exists'); END IF;END;/

Als u het blok de eerste keer uitvoert, wordt de effective_date kolom toegevoegd aan het einde van de members tabel. Als u het echter voor de tweede keer uitvoert, ziet u de volgende melding:

The column effective_date already exists

wat we verwachtten.

In deze zelfstudiegids heb je geleerd hoe je het Oracle ALTER TABLE ADD kolomstatement kunt gebruiken om een of meer kolommen aan een bestaande tabel toe te voegen.

  • Was deze zelfstudie nuttig?
  • Ja>Nee

Geef een reactie

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