Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment modifier une table dans Oracle

Nous avons souvent besoin de modifier la table dans Oracle en fonction des modifications et de la mise à niveau des exigences. Voici quelques-uns des points importants concernant l'instruction Alter table

  • Vous altérez ou modifiez un tableau à l'aide de ALTER TABLE  déclaration.
  • La table doit être contenue dans votre schéma. Pour modifier une table, vous devez soit disposer du privilège d'objet ALTER pour la table, soit du privilège système ALTER ANY TABLE.
  • Si une vue, une vue matérialisée, un déclencheur, un index basé sur une fonction, une contrainte de vérification, une fonction, une procédure de package dépend d'une table de base, la modification de la table de base ou de ses colonnes peut affecter l'objet dépendant. Par exemple, les objets plsql deviennent non valide si l'objet de table dépendant est modifié et que vous devez le rendre à nouveau valide

Modifier les caractéristiques physiques (INITRANS ou paramètres de stockage)

Nous pouvons modifier le paramètre de stockage de la table à l'aide de l'instruction Alter table. Nous pouvons modifier inittrans comme ceci

ALTER TABLE TABLE_NAME INITRANS 10;

Déplacer le tableau vers de nouveaux segments ou tablespaces

Nous pouvons déplacer la table non partitionnée ou la partition de la table vers un nouveau segment ou un nouvel espace de table si nécessaire

Alter table table_name move tablespace <tablespace name>

Nous pouvons même utiliser la commande move pour modifier n'importe quel paramètre de stockage des tables qui ne sont pas modifiés à l'aide de la commande alter table

Modifier la table dans Oracle pour modifier le type de données

Nous pouvons modifier le type de données de n'importe quelle colonne à l'aide de la commande alter table modify

ALTER TABLE <table_name>
MODIFY (<column_name>  <new_data_type>);
Before
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)


After
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(20)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

modifier le type de données de la colonne dans oracle

Ajouter une nouvelle colonne/supprimer une colonne/renommer une colonne

Nous pouvons ajouter une nouvelle colonne à la définition de table

Utilisation de la commande alter table add 

ALTER TABLE <table_name>
ADD (<New column_name>  <new_data_type>);

Oracle vous permet de renommer des colonnes existantes dans une table. Utilisez la clause RENAME COLUMN de l'instruction ALTER TABLE pour renommer une colonne

Oracle vous permet de déposer la colonne dans la table à l'aide de la commande

Alter table drop column ;
Veuillez consulter l'article ci-dessous pour en savoir plus sur ces derniers

modifier table ajouter colonne oracle

Définissez une colonne inutilisée et supprimez la colonne inutilisée

si vous êtes préoccupé par les ressources consommées lors de la suppression de la colonne, vous pouvez utiliser l'instruction ALTER TABLE…SET UNUSED .

Cette instruction marque une ou plusieurs colonnes comme inutilisées, mais ne supprime pas réellement les données de la colonne cible ni ne restaure l'espace disque occupé par ces colonnes.

  • Une colonne marquée comme inutilisée n'est pas affichée dans les requêtes ou les vues du dictionnaire de données, et son nom est supprimé afin qu'une nouvelle colonne puisse réutiliser ce nom. Toutes les contraintes, index et statistiques définis sur la colonne sont également supprimés.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

Nous pouvons supprimer la colonne inutilisée plus tard lorsque la ressource est inférieure à l'aide de la commande

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Ajouter, modifier ou supprimer des contraintes d'intégrité associées à la table ou vous pouvez également activer/désactiver les contraintes

L'ajout de contraintes s'effectue à l'aide de la modification de la table d'ajout de contraintes

ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES 
DEPT(DEPT_NO);

Supprimer les contraintes - se fait à l'aide de

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Activation/désactivation des contraintes - Les contraintes peuvent être créées en mode DISABLE/ENABLE ou peuvent être désactivées ou activées à l'aide de la commande

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Renommer le nom de la table

Oracle vous permet également de renommer le nom de la table

Rename <table name>  to <new table name>;

Modification de la table cache/no-cache,  Compression, parallélisme

Oracle permet Altération de la table cache/no-cache, Compression, parallélisme

Articles connexes

Répertorier toutes les tables dans Oracle
créer une table oracle
ora-20005 :les statistiques d'objet sont verrouillées
modifier le déplacement de la table
comment vérifier toutes les contraintes sur une table dans oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm