Alters the file location, transaction control option or size of a databank.
The SET clause is used to set or change various characteristics for the specified databank.
The DROP clause is used to remove databank attributes, like file size limitations and REMOVABLE. The DROP FILESIZE option will shrink the file size as much as possible.
The databank's physical file size is set by using the SET FILESIZE option.
When specifying sizes, K (kilo) means that the size (in bytes) is multiplied by 1 024, M (mega) means the size is multiplied by 1 048 576, and G (giga) means that the size is multiplied by 1 073 741 824.
The DROP FILESIZE option will shrink the file size as much as possible.
By specifying a GOALSIZE value, the system will always try to keep the databank size limited to the value specified.
It is possible to specify the maximum file size by using the MAXSIZE option.
It is possible to specify the minimum file size by using the MINSIZE option.
This option is used to assure ALTER DATABANK DROP FILESIZE does not shrink the databank file too much.
If the FILE clause is specified, the databank location stored in the data dictionary is changed to the location given in the filename-string parameter. The file specified by filename-string must exist when the ALTER DATABANK statement is executed. The filename-string may be represented as character literal, national character literal, or unicode character literal.
The new file must be identifiable as a copy of the databank created for the current Mimer SQL database. The first page of the databank file is read to verify that the data in the databank can be accessed and that the file was closed correctly the last time it was used.
If the file is flagged internally as not being closed correctly, a full databank check is effectively done on it, see the Mimer SQL System Management Handbook, Databank Check Functionality, for details on the DBC functionality.
The ALTER DATABANK statement will fail if the new file does not verify correctly against the checks performed.
If the timestamp information in the databank file indicates that additional information must be restored to it to bring it up to date, an information message is written to the database server log file (this message will be returned to the user if the database is being accessed in single user mode).
This situation will not cause the ALTER DATABANK statement to fail, but any attempt to subsequently access the databank will raise an error indicating that additional information must be restored to the databank. Once the additional information has been restored, the databank can be used normally.
If the databank is OFFLINE, however, the new file will be accepted by the ALTER DATABANK statement without any verification. In this case the file is validated when the databank is next set ONLINE and the SET DATABANK statement will fail if the file does not verify correctly against the checks performed.
If the SET OPTION clause is specified, the transaction control option of the databank is changed. The possible options are:
All operations on the databank are performed under transaction control. All transactions are logged.
All operations on the databank are performed under transaction control. No transactions are logged.
All operations on the databank are performed without transaction control (even if they are requested within a transaction) and are not logged. Set operations (DELETE, UPDATE and INSERT on several rows) which are interrupted will not be rolled back. All secondary indexes contained in the databank are flagged as not consistent (a secondary index that is flagged as not consistent will not offer optimal performance when used in a query).
Only read only operations are allowed, i.e. DELETE, UPDATE and INSERT operations are not allowed, nor it's possible to create indexes or altering tables.
When a databank is set to the REMOVABLE attribute, the database system does not signal an error when a SELECT, UPDATE, or DELETE operation is performed on a table in an inaccessible databank. Instead, the system behaves as if the table is empty and signals an end-of-table condition. (If the databank does not have the REMOVABLE attribute, an open file error is returned whenever it is accessed and the file cannot be accessed.) INSERT operations will always signal an error if the databank is inaccessible.
This functionality is useful, for example, if the databank is located on a flash memory card.
Note: A database can be set in AUTOUPGRADE mode, which has precedence for REMOVABLE, meaning that for a databank having both AUTOUPGRADE and REMOVABLE enabled a missing databank and/or table will be created. I.e. the file is created whenever it is accessed. If the create fails, the REMOVABLE attribute is used.
See ALTER DATABASE for more information about AUTOUPGRADE.
Only the creator of the databank may alter it.
The databank option may only be set to TRANSACTION or LOG for a databank that is shadowed or contains a table defined with foreign or unique keys, a table referenced in a foreign key context or a table on which a UNIQUE index or trigger has been created.
The SET FILESIZE clause may not be used if the databank is OFFLINE.
If the extension of the databank exceeds the available disk space, the databank is extended as much as possible.
A databank will be extended automatically on operating systems supporting dynamic file extension (provided that there is free space on the disk). However, such incremental extensions may lead to the disk becoming fragmented, so the use of explicit ALTER DATABANK ... SET FILESIZE can help avoid disk fragmentation.
For databanks with option TRANSACTION and LOG the system treats the maximum size as an advisory limit. This limit may be temporarily exceeded. The reason for this is that the actual updating of the databank files are performed in the background while the detection of the maximum size is performed when the applications perform insert operations during transaction buildup. In addition, when several concurrent users are inserting data the actual space is not reserved until the background updates are made.
Changing the location of a databank with the ALTER DATABANK... SET FILE statement only changes the file location stored in the data dictionary, it does not move any physical files in the host operating system. You must first copy or move the databank file to its new location using operating system commands and then use the ALTER DATABANK statement to correct the location stored in the data dictionary.
The value of filename-string must always be enclosed in string delimiters. The maximum length of the filename string is 256 characters.
Refer to Specifying the Location of User Databanks for details concerning the specification of path-name components in filename-string.
When the databank option is altered to WORK, all secondary indexes contained in the databank will be flagged as not consistent.
It is not possible to update primary key columns if the table is located in a databank with the WORK option.
ExampleALTER DATABANK usrdb SET GOALSIZE 100 M, MAXSIZE 1 G;
Mimer Information Technology AB
Voice: +46 18 780 92 00
Fax: +46 18 780 92 40