Titolo: [v11 SQL] Le tabelle di sistema di 4D: _USER_INDEXES e _USER_IND_COLUMNS
Categoria: Info |
|
Ultimo Aggiornamento: 12/01/11 |
La seguente coppia di tabelle accessibili da SQL contengono le informazioni sugli indici:
_USER_INDEXESINDEX_ID - VARCHAR - Numero identificativo dell'indice
INDEX_NAME - VARCHAR - Nome (potrebbe essere vuoto)
INDEX_TYPE - INT32 - Tipo
TABLE_NAME - VARCHAR - Nome della tabella dove si trova l'indice
TABLE_ID - INT64 - Numero della tabella dove si trova l'indice
UNIQUENESS - BOOLEAN - Vero se l'indice prevede l'unicità
I Tipi di indice sono:
1 BTree / Composite
3 Cluster / Keyword
7 Auto
_USER_IND_COLUMNSINDEX_ID - VARCHAR - Numero identificativo dell'indice
INDEX_NAME - VARCHAR - Nome (potrebbe essere vuoto)
TABLE_NAME - VARCHAR - Nome della tabella dove si trova l'indice
COLUMN_NAME - VARCHAR - Nome del campo dove si trova l'indice
COLUMN_POSITION - INT32 - Posizione del campo
TABLE_ID - INT64 - Numero della tabella
COLUMN_ID - INT64 - Numero del campo
Ecco per esempio il codice per cancellare tutti gli indici di un db:
ARRAY TEXT($identificativi;0)
Begin SQL select Index_Id from _User_Indexes into :$identificativi;
End SQLFor ($i;1;Size of array($identificativi))
$id:=$identificativi{$i}
$tablenum:=0
$fieldnum:=0
Begin SQL select table_id, column_Id from _User_Ind_Columns
where Index_ID = :$id limit 1 into :$tablenum, :$fieldnum;
End SQL If (($tablenum#0) & ($fieldnum#0))
$puntCampo:=Field($tablenum;$fieldnum)
DELETE INDEX($puntCampo;*)
End if End for
Inviato da: Umberto Migliore |
|
Visite: 10748 |
Se accedi con utente e password, puoi aggiungere dei commenti.