Firebird - retornando informacoes das tabelas de sistema (system tables) |
Top Previous Next |
|
Objects:
* Tables/Views format * Triggers on a table * primary/foreign keys and table constraints * domains * Indices * Procedures * UDFs * Generators
Retrieving Information about a Table or View This example uses the employee table in the employee database in the examples directory. This select will return the field name, field type, field length, whether it is nullable, and the column check constraints for a table or view.
select r.rdb$field_name, t.rdb$type_name, f.rdb$field_length, r.rdb$null_flag, f.rdb$validation_source from rdb$relation_fields r, rdb$types t, rdb$fields f where r.rdb$relation_name='EMPLOYEE' and f.rdb$field_name=r.rdb$field_source and t.rdb$field_name='RDB$FIELD_TYPE' and f.rdb$field_type=t.rdb$type;
This select returns the source for a view.
select rdb$view_source from rdb$relations where rdb$view_source='PHONE_LIST';
This select returns the primary and foreign keys for a table and the fields it is defined on.
select r.rdb$constraint_type, i.rdb$field_name from rdb$relation_constraints r, rdb$index_segments i where r.rdb$relation_name='EMPLOYEE' and (r.rdb$constraint_type='PRIMARY KEY' or r.rdb$constraint_type='FOREIGN KEY') and r.rdb$index_name=i.rdb$index_name;
This select returns the check constraints on a table.
select r.rdb$constraint_name, r.rdb$constraint_type, t.rdb$trigger_source from rdb$relation_constraints r, rdb$check_constraints c, rdb$triggers t where r.rdb$constraint_name=c.rdb$constraint_name and c.rdb$trigger_name=t.rdb$trigger_name and r.rdb$relation_name='EMPLOYEE';
This select returns all the triggers for a given table.
select t.rdb$trigger_name, t.rdb$trigger_sequence, y.rdb$type_name, t.rdb$trigger_inactive from rdb$triggers t, rdb$types y where t.rdb$relation_name='EMPLOYEE' and t.rdb$trigger_name not like 'CHECK%' and y.rdb$field_name='RDB$TRIGGER_TYPE' and t.rdb$trigger_type=y.rdb$type;
Retrieving Information on a Domain This select returns the name, datatype and length, nullable, and check constraints on a domain.
select f.rdb$field_name, t.rdb$type_name, f.rdb$field_length, f.rdb$null_flag, f.rdb$default_source, f.rdb$validation_source from rdb$fields f, rdb$types t where f.rdb$field_name='JOBCODE' and f.rdb$field_type=t.rdb$type and t.rdb$field_name='RDB$FIELD_TYPE'
Retrieving Information on a Database's Indices This select returns the indices defined for a database.
select i.rdb$index_name, i.rdb$unique_flag, i.rdb$relation_name, s.rdb$field_name from rdb$indices i, rdb$index_segments s where i.rdb$index_name=s.rdb$index_name and i.rdb$index_name not like 'RDB$%'; (exclude this from where clause if you want system indices)
Retrieving Information on a Procedure This select returns the source for a procedure.
select rdb$procedure_source from rdb$procedures where rdb$procedure_name = 'ADD_EMP_PROJ';
This select returns the parameters' name, datatype, datatype length, and whether it is an input or output parameter.
select p.rdb$parameter_name, p.rdb$parameter_type, t.rdb$type_name, f.rdb$field_length from rdb$procedure_parameters p, rdb$fields f, rdb$types t where p.rdb$field_source=f.rdb$field_name and p.rdb$procedure_name='ADD_EMP_PROJ' and f.rdb$field_type=t.rdb$type and t.rdb$field_name='RDB$FIELD_TYPE';
Retrieving Information on User Defined Functions This select returns a functions name, module name, and entry point.
select f.rdb$function_name, f.rdb$module_name, f.rdb$entrypoint from rdb$functions f where rdb$function_name='UPPER';
This select returns the returning value of a function.
select a.rdb$mechanism, t.rdb$type_name, a.rdb$field_length from rdb$function_arguments a, rdb$functions f, rdb$types t where f.rdb$function_name=a.rdb$function_name and t.rdb$field_name='RDB$FIELD_TYPE' and t.rdb$type=a.rdb$field_type and f.rdb$function_name='UPPER' and a.rdb$argument_position=f.rdb$return_argument;
This select returns the parameters of a function.
select a.rdb$argument_position, a.rdb$mechanism, t.rdb$type_name, a.rdb$field_length from rdb$function_arguments a, rdb$functions f, rdb$types t where f.rdb$function_name=a.rdb$function_name and t.rdb$field_name='RDB$FIELD_TYPE' and t.rdb$type=a.rdb$field_type and f.rdb$function_name='UPPER' and a.rdb$argument_position <> f.rdb$return_argument;
Retrieving Information about Exceptions This select returns the exception name, exception message, and the name and type of object that uses the exception.
select e.rdb$exception_name, e.rdb$message, d.rdb$dependent_name, t.rdb$type_name from rdb$exceptions e, rdb$dependencies d, rdb$types t where e.rdb$exception_name=d.rdb$depended_on_name and d.rdb$dependent_type=t.rdb$type and rdb$field_name='RDB$OBJECT_TYPE';
Retrieving Information about Generators This select shows the database's generators.
select rdb$generator_name from rdb$generators where rdb$system_flag is null; |