Questo articolo contiene il ALTER DATABASE
di SQL sintassi, come implementato da vari sistemi di gestione di database (DBMS). La sintassi è elencata esattamente come l'ha elencata ogni fornitore sul proprio sito Web. Fare clic sul collegamento applicabile per visualizzare maggiori dettagli sulla sintassi per un particolare fornitore.
I DBMS coperti sono MySQL, SQL Server, PostgreSQL e Oracle Database.
MySQL
Dal manuale di riferimento di MySQL 5.7:
ALTER {DATABASE | SCHEMA} [db_name
]alter_specification
... ALTER {DATABASE | SCHEMA}db_name
UPGRADE DATA DIRECTORY NAMEalter_specification
: [DEFAULT] CHARACTER SET [=]charset_name
| [DEFAULT] COLLATE [=]collation_name
SQL Server
Dal riferimento Transact-SQL:
ALTER DATABASE { database_name | CURRENT } { MODIFY NAME = new_database_name | COLLATE collation_name | <file_and_filegroup_options> | <set_database_options> } [;] <file_and_filegroup_options >::= <add_or_modify_files>::= <filespec>::= <add_or_modify_filegroups>::= <filegroup_updatability_option>::= <set_database_options>::= <optionspec>::= <auto_option> ::= <change_tracking_option> ::= <cursor_option> ::= <database_mirroring_option> ::= <date_correlation_optimization_option> ::= <db_encryption_option> ::= <db_state_option> ::= <db_update_option> ::= <db_user_access_option> ::= <external_access_option> ::= <FILESTREAM_options> ::= <HADR_options> ::= <parameterization_option> ::= <recovery_option> ::= <service_broker_option> ::= <snapshot_option> ::= <sql_option> ::= <termination> ::=
PostgreSQL
Dal manuale di PostgreSQL 9.5:
ALTER DATABASE name [ [ WITH ] option [ ... ] ] where option can be: ALLOW_CONNECTIONS allowconn CONNECTION LIMIT connlimit IS_TEMPLATE istemplate ALTER DATABASE name RENAME TO new_name ALTER DATABASE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER } ALTER DATABASE name SET TABLESPACE new_tablespace ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT } ALTER DATABASE name SET configuration_parameter FROM CURRENT ALTER DATABASE name RESET configuration_parameter ALTER DATABASE name RESET ALL
Database Oracle
Dalla documentazione online di Oracle Database 12c Versione 1 (12.1):
ALTER DATABASE [ database ] { startup_clauses | recovery_clauses | database_file_clauses | logfile_clauses | controlfile_clauses | standby_database_clauses | default_settings_clauses | instance_clauses | security_clause } ;
Quanto segue delinea il dettaglio delle varie clausole.
clausole_di_avvio::=
{ MOUNT [ { STANDBY | CLONE } DATABASE ] | OPEN { [ READ WRITE ] [ RESETLOGS | NORESETLOGS ] [ UPGRADE | DOWNGRADE ] | READ ONLY } }
clausole_di_recupero ::=
{ general_recovery | managed_standby_recovery | BEGIN BACKUP | END BACKUP }
recupero_generale ::=
RECOVER [ AUTOMATIC ] [ FROM 'location' ] { { full_database_recovery | partial_database_recovery | LOGFILE 'filename' } [ { TEST | ALLOW integer CORRUPTION | parallel_clause }... ] | CONTINUE [ DEFAULT ] | CANCEL }
full_database_recovery ::=
[ STANDBY ] DATABASE [ { UNTIL { CANCEL | TIME date | CHANGE integer | CONSISTENT } | USING BACKUP CONTROLFILE | SNAPSHOT TIME date }... ]
recupero_database_parziale::=
{ TABLESPACE tablespace [, tablespace ]... | DATAFILE { 'filename' | filenumber } [, 'filename' | filenumber ]... }
clausola_parallela::=
{ NOPARALLEL | PARALLEL [ integer ] }
managed_standby_recovery::=
RECOVER { MANAGED STANDBY DATABASE [ { USING ARCHIVED LOGFILE | DISCONNECT [FROM SESSION] | NODELAY | UNTIL CHANGE integer | UNTIL CONSISTENT | parallel_clause }... | FINISH | CANCEL ] | TO LOGICAL STANDBY { db_name | KEEP IDENTITY } }
clausole_file_database ::=
{ RENAME FILE 'filename' [, 'filename' ]... TO 'filename' | create_datafile_clause | alter_datafile_clause | alter_tempfile_clause | move_datafile_clause }
create_datafile_clause::=
CREATE DATAFILE { 'filename' | filenumber } [, 'filename' | filenumber ]... } [ AS { file_specification [, file_specification ]... | NEW } ]
alter_datafile_clause::=
DATAFILE { 'filename' | filenumber } [, 'filename' | filenumber ]... } { ONLINE | OFFLINE [ FOR DROP ] | RESIZE size_clause | autoextend_clause | END BACKUP }
alter_tempfile_clause::=
TEMPFILE { 'filename' [, 'filename' ]... | filenumber [, filenumber ]... } { RESIZE size_clause | autoextend_clause | DROP [ INCLUDING DATAFILES ] | ONLINE | OFFLINE }
move_datafile_clause::=
MOVE DATAFILE ( 'filename' | 'ASM_filename' | file_number ) [ TO ( 'filename' | 'ASM_filename' ) ] [ REUSE ] [ KEEP ]
ASM_nomefile::=
{ fully_qualified_file_name | numeric_file_name | incomplete_file_name | alias_file_name }
autoextend_clause ::=
AUTOEXTEND { OFF | ON [ NEXT size_clause ] [ maxsize_clause ] }
clausola_maxsize::=
MAXSIZE { UNLIMITED | size_clause }
clausole_logfile ::=
{ { ARCHIVELOG [ MANUAL ] | NOARCHIVELOG } | [ NO ] FORCE LOGGING | RENAME FILE 'filename' [, 'filename' ]... TO 'filename' | CLEAR [ UNARCHIVED ] LOGFILE logfile_descriptor [, logfile_descriptor ]... [ UNRECOVERABLE DATAFILE ] | add_logfile_clauses | drop_logfile_clauses | switch_logfile_clause | supplemental_db_logging }
add_logfile_clauses::=
ADD [ STANDBY ] LOGFILE { { [ INSTANCE 'instance_name' ] | [ THREAD 'integer' ] } [ GROUP integer ] redo_log_file_spec [, [ GROUP integer ] redo_log_file_spec ]... | MEMBER 'filename' [ REUSE ] [, 'filename' [ REUSE ] ]... TO logfile_descriptor [, logfile_descriptor ]... }
drop_logfile_clauses::=
DROP [ STANDBY ] LOGFILE { logfile_descriptor [, logfile_descriptor ]... | MEMBER 'filename' [, 'filename' ]... }
switch_logfile_clause::=
SWITCH ALL LOGFILES TO BLOCKSIZE integer
supplemental_db_logging ::=
{ ADD | DROP } SUPPLEMENTAL LOG { DATA | supplemental_id_key_clause | supplemental_plsql_clause }
clausola_chiave_id_supplementare::=
DATA ( { ALL | PRIMARY KEY | UNIQUE | FOREIGN KEY } [, { ALL | PRIMARY KEY | UNIQUE | FOREIGN KEY } ]... ) COLUMNS
clausola_plsql_supplementare::=
DATA FOR PROCEDURAL REPLICATION
logfile_descriptor::=
{ GROUP integer | ('filename' [, 'filename' ]...) | 'filename' }
controlfile_clauses ::=
CREATE { [ LOGICAL | PHYSICAL ] STANDBY | FAR SYNC INSTANCE } CONTROLFILE AS 'filename' [ REUSE ] | BACKUP CONTROLFILE TO { 'filename' [ REUSE ] | trace_file_clause }
clausole_standby_database ::=
{ { activate_standby_db_clause | maximize_standby_db_clause | register_logfile_clause | commit_switchover_clause | start_standby_clause | stop_standby_clause | convert_database_clause } [ parallel_clause ] } | { switchover_clause | failover_clause }
activate_standby_db_clause::=
ACTIVATE [ PHYSICAL | LOGICAL ] STANDBY DATABASE [ FINISH APPLY ]
maximize_standby_db_clause::=
SET STANDBY DATABASE TO MAXIMIZE { PROTECTION | AVAILABILITY | PERFORMANCE }
register_logfile_clause::=
REGISTER [ OR REPLACE ] [ PHYSICAL | LOGICAL ] LOGFILE [ file_specification [, file_specification ]... [ FOR logminer_session_name ]
clausola_commutazione::=
SWITCHOVER TO target_db_name [ VERIFY | FORCE ]
clausola_failover::=
FAILOVER TO target_db_name [ FORCE ]
commit_switchover_clause::=
{ PREPARE | COMMIT } TO SWITCHOVER [ TO { { [ PHYSICAL | LOGICAL ] PRIMARY | [ PHYSICAL ] STANDBY } [ { WITH | WITHOUT } SESSION SHUTDOWN { WAIT | NOWAIT } ] | LOGICAL STANDBY } | CANCEL ]
start_standby_clause::=
START LOGICAL STANDBY APPLY [ IMMEDIATE ] [ NODELAY ] [ NEW PRIMARY dblink | INITIAL [ scn_value ] | { SKIP FAILED TRANSACTION | FINISH } ]
stop_standby_clause::=
{ STOP | ABORT } LOGICAL STANDBY APPLY
convert_database_clause::=
CONVERT TO ( PHYSICAL | SNAPSHOT ) STANDBY
default_settings_clauses::=
{ DEFAULT EDITION = edition_name | SET DEFAULT { BIGFILE | SMALLFILE } TABLESPACE | DEFAULT TABLESPACE tablespace | DEFAULT TEMPORARY TABLESPACE { tablespace | tablespace_group_name } | RENAME GLOBAL_NAME TO database.domain [.domain ]... | ENABLE BLOCK CHANGE TRACKING [ USING FILE 'filename' [ REUSE ] ] | DISABLE BLOCK CHANGE TRACKING | [NO] FORCE FULL DATABASE CACHING | flashback_mode_clause | set_time_zone_clause }
set_time_zone_clause::=
SET TIME_ZONE = '{ { + | - } hh : mi | time_zone_region }'
flashback_mode_clause ::=
FLASHBACK { ON | OFF }
clausole_istanza::=
{ ENABLE | DISABLE } INSTANCE 'instance_name'
clausola_di_sicurezza ::=
GUARD { ALL | STANDBY | NONE }
Utilizzo della GUI
La maggior parte dei DBMS ti consente di modificare i database utilizzando la GUI. Potrebbe trattarsi di una GUI fornita con il prodotto o di una sviluppata da terze parti. Ad esempio, MySQL Workbench è uno strumento GUI che può essere utilizzato con MySQL.