### *** This interface provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.information.metadata

# Interface RelationalTableInterface

All Superinterfaces:
  `ClassifierInterface`, `DataTableInterface`, `MetadataInterface`, `PublicObjectInterface`, `Remote`

All Known Subinterfaces:
  `PhysicalTableInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface RelationalTableInterface extends DataTableInterface
This interface is just a place holder for the table class hierarchy in the meta model. The methods in RelationalTable look arcane to me, so I'm going to skip them until someone asks for them.

- ## Field Summary

  ### Fields inherited from interface com.sas.services.information.metadata.MetadataInterface

  `METADATA_STATE_DELETED, METADATA_STATE_DESTROYED, METADATA_STATE_NEW, METADATA_STATE_NORMAL, PERMISSION_READMETADATA, PERMISSION_WRITEMETADATA`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ForeignKeyInterface`
  `addForeignKey(String name, RelationalKeyInterface smartUKey)`
  Add a foreign key to the relational table.
  `RelationalKeyInterface`
  `addPrimaryKey(String name, List<ColumnInterface> listColumn)`
  Add a Primary key to the relational table.
  `RelationalKeyInterface`
  `addUniqueKey(String name, List<ColumnInterface> listColumn)`
  Add a Unique key to the relational table.
  `List<ForeignKeyInterface>`
  `getForeignKeys()`
  Get the foreign keys associated with the relational table.
  `RelationalKeyInterface`
  `getPrimaryKey()`
  Get the primary keys associated with the relational table.
  `List<RelationalKeyInterface>`
  `getUniqueKeys()`
  Get the unique keys associated with the relational table.
  `void`
  `removeForeignKey(ForeignKeyInterface relationalKey)`
  Remove a Foreign key from the relational table.
  `void`
  `removePrimaryKey(RelationalKeyInterface relationalKey)`
  Remove a Primary key from the relational table.
  `void`
  `removeUniqueKey(RelationalKeyInterface relationalKey)`
  Remove a Unique key from the relational table.

  ### Methods inherited from interface com.sas.services.information.metadata.ClassifierInterface

  `getSourceClassifierMaps, getTargetClassifierMaps`

  ### Methods inherited from interface com.sas.services.information.metadata.DataTableInterface

  `addColumn, addColumnAt, addColumnHierarchy, addRole, addRole, getColumnHierarchies, getColumns, getNumRows, getRoles, getSchema, getTableName, removeColumn, removeColumn, removeColumnHierarchy, removeRole, setNumRows, setSchema, setTableName`

  ### Methods inherited from interface com.sas.services.information.metadata.MetadataInterface

  `add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addNoteTextStore, addNoteTextStore, addObjectProperty, addObjectProperty, addPermissions, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getCreatedBy, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifiedBy, getModifyDate, getNoteTextStore, getNoteTextStores, getNoteTextStoresByRole, getObjectProperties, getParent, getParentPath, getParents, getPath, getPaths, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getType, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isObjectAlive, isReadCompatible, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, refresh, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeNoteTextStore, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeResponsiblePartyByIdentity, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setNoteTextStores, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setRepository, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version`

  ### Methods inherited from interface com.sas.services.information.publicobject.PublicObjectInterface

  `addProcessorInterface, getContainer, getIdentifier, getName, getObjectURI, getPathUrl, getProcessorInterface, getTypeDescriptor`

- ## Method Details

  - ### addForeignKey

    ForeignKeyInterface addForeignKey(String name, RelationalKeyInterface smartUKey) throws ServiceException, RemoteException
    Add a foreign key to the relational table.
    Parameters:
      `name` - is the foreign key name.
      `smartUKey` - is the partner unique key.
    Returns:
    Throws:
      `ServiceException` - - 1] If foreign key with the given name exist in the relational table 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### addUniqueKey

    RelationalKeyInterface addUniqueKey(String name, List<ColumnInterface> listColumn) throws ServiceException, RemoteException
    Add a Unique key to the relational table.
    Parameters:
      `name` - is the unique key name.
      `listColumn` - is a column list associated with the unique key.
    Returns:
    Throws:
      `ServiceException` - - 1] If Unique key with the given name exist in the relational table 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### addPrimaryKey

    RelationalKeyInterface addPrimaryKey(String name, List<ColumnInterface> listColumn) throws ServiceException, RemoteException
    Add a Primary key to the relational table.
    Parameters:
      `name` - is the primary key name.
      `listColumn` - is a column list associated with the primary key.
    Returns:
    Throws:
      `ServiceException` - - 1] If primary key already exist in the relational table 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### getForeignKeys

    List<ForeignKeyInterface> getForeignKeys() throws ServiceException, RemoteException
    Get the foreign keys associated with the relational table.
    Returns:
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### getUniqueKeys

    List<RelationalKeyInterface> getUniqueKeys() throws ServiceException, RemoteException
    Get the unique keys associated with the relational table.
    Returns:
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### getPrimaryKey

    RelationalKeyInterface getPrimaryKey() throws ServiceException, RemoteException
    Get the primary keys associated with the relational table.
    Returns:
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removeForeignKey

    void removeForeignKey(ForeignKeyInterface relationalKey) throws ServiceException, RemoteException
    Remove a Foreign key from the relational table.
    Parameters:
      `relationalKey` -
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removeUniqueKey

    void removeUniqueKey(RelationalKeyInterface relationalKey) throws ServiceException, RemoteException
    Remove a Unique key from the relational table.
    Parameters:
      `relationalKey` -
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removePrimaryKey

    void removePrimaryKey(RelationalKeyInterface relationalKey) throws ServiceException, RemoteException
    Remove a Primary key from the relational table.
    Parameters:
      `relationalKey` -
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.