11
votes

Affichage des contraintes dans une table

Bonjour, j'essaie d'afficher les contraintes dans l'une de mes tables, mais pour une raison quelconque, je reçois le message qu'aucune lignée n'a été sélectionnée. Mentionné ci-dessous est le tableau que j'ai créé.

SELECT constraint_name, 
       constraint_type,
       search_condition
  FROM USER_CONSTRAINTS
 WHERE table_name = 'Teams';


3 commentaires

Votre problème me frappe car vous effectuez ces actions comme des utilisateurs différents et / ou ne vous engagez pas la transaction lorsque vous créez la table.


Créer une table est DDL que les autocommensis lors de l'exécution à Oracle.


Vous ne pouvez pas laisser tomber une table référencée par d'autres tables, à moins que vous spécifiez "contraintes de cascade", c'est-à-dire "" Drop Table équipes de cascade contraintes ""


6 Réponses :


22
votes

Essayez ceci:

SELECT constraint_name, 
       constraint_type,
       search_condition
  FROM USER_CONSTRAINTS
 WHERE table_name = 'TEAMS';


0 commentaires

1
votes

Si vous préférez les noms CAMELCASE, votre script de table Create devrait avoir été:

Create table "Teams" ( 
  "TeamID" varCHAR2(4) constraint "Teams_TeamID_PK" Primary Key, 
  "TeamName" VARCHAR2(40)  
); 


0 commentaires

1
votes
select dbms_mview.get_ddl('TABLE',USER,'TEAMS') from dual;

0 commentaires

3
votes

Utilisez le code suivant:

show create table table_name;


1 commentaires

Travaillera dans MySQL mais pas dans MS SQL Server et Oracle.



5
votes

J'utilise personnellement:

SELECT * FROM all_constraints WHERE Table_Name = <TableName>;


0 commentaires

1
votes

Tapez le nom de la table en majuscule dans clause dans les guillemets simples.

E.g. où table_name = 'équipes';


1 commentaires

Les mots-clés SQL sont insensibles à l'affaire: Stackoverflow.com/Questions/ 153944 / IST-SQL-SYNTAX-CASE-SENSIT IVE