Directory articoli
MySQL modificare aggiungere per aumentare più posizioni di campo? Spiegazione dettagliata dell'utilizzo dell'istruzione di modifica della colonna
MySQL comando ALTER
Quando è necessario modificare il nome della tabella di dati o modificare i campi della tabella di dati, è necessario utilizzare il comando MySQL ALTER.
Prima di iniziare questo tutorial, creiamo una tabella denominata: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Elimina, aggiungi o modifica i campi della tabella
Il comando seguente utilizza il comando ALTER con la clausola DROP per eliminare la colonna i della tabella creata sopra:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP non può essere utilizzato per eliminare un campo se è rimasto un solo campo nella tabella dati.
La clausola ADD viene utilizzata in MySQL per aggiungere colonne alla tabella dati. L'esempio seguente aggiunge il campo i alla tabella testalter_tbl e definisce il tipo di dati:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Dopo aver eseguito il comando precedente, il campo i viene automaticamente aggiunto alla fine dei campi della tabella dati.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Se è necessario specificare la posizione del nuovo campo, è possibile utilizzare la parola chiave FIRST fornita da MySQL (setPosizionamentoprima colonna), AFTER nome campo (impostato dopo un campo).
Prova la seguente istruzione ALTER TABLE e, dopo l'esecuzione riuscita, usa SHOW COLUMNS per visualizzare le modifiche nella struttura della tabella:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
Le parole chiave FIRST e AFTER vengono utilizzate solo nella clausola ADD, quindi se si desidera reimpostare la posizione di un campo di una tabella dati è necessario utilizzare DROP per rimuovere il campo e quindi ADD per aggiungere il campo e impostare la posizione.
Modifica il tipo e il nome del campo
Se è necessario modificare il tipo e il nome del campo, è possibile utilizzare la clausola MODIFY o CHANGE nel comando ALTER.
Ad esempio, per modificare il tipo di campo c da CHAR(1) a CHAR(10), eseguire il comando seguente:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Con la clausola CHANGE, la sintassi è molto diversa.Subito dopo la parola chiave CHANGE è il nome del campo che si desidera modificare, quindi specificare il nuovo nome e tipo di campo.Prova il seguente esempio:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Effetto di ALTER TABLE sui valori Null e Default
Quando modifichi un campo, puoi specificare se includerlo solo o se impostare un valore predefinito.
L'esempio seguente specifica che il campo j NON è NULL e il valore predefinito è 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Se non imposti un valore predefinito, MySQL imposterà automaticamente il campo su NULL per impostazione predefinita.
Modifica il valore predefinito del campo
È possibile utilizzare ALTER per modificare il valore predefinito di un campo, provare i seguenti esempi:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
È inoltre possibile utilizzare il comando ALTER con la clausola DROP per rimuovere il valore predefinito di un campo, come nell'esempio seguente:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
La modifica del tipo di tabella dati può essere eseguita utilizzando il comando ALTER e la clausola TYPE.Prova il seguente esempio, dove cambiamo il tipo della tabella testalter_tbl in MYISAM:
Nota:Per visualizzare il tipo di tabella dati, è possibile utilizzare l'istruzione SHOW TABLE STATUS.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Modifica il nome della tabella
Se è necessario modificare il nome della tabella di dati, è possibile utilizzare la clausola RENAME nell'istruzione ALTER TABLE per farlo.
Prova il seguente esempio per rinominare la tabella dati testalter_tbl in alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Il comando ALTER può essere utilizzato anche per creare ed eliminare indici su tabelle di dati MySQL, che introdurremo nei prossimi capitoli.
alterare altri usi
Modifica lo storage engine: modificalo in myisam
alter table tableName engine=myisam;
Rimuovere il vincolo di chiave esterna: keyName è un alias di chiave esterna
alter table tableName drop foreign key keyName;
La posizione relativa del campo modificato: qui name1 è il campo che vuoi modificare, type1 è il tipo originale del campo, e puoi sceglierne uno tra first e after, che dovrebbe essere ovvio, first è posizionato per primo, e after è posizionato dopo il campo name2
alter table tableName modify name1 type1 first|after name2;
Speranza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ha condiviso "MySQL altera aggiungere per aumentare le posizioni di più campi? Spiegazione dettagliata dell'uso dell'istruzione Modifica colonna" ti è utile.
Benvenuti a condividere il link di questo articolo:https://www.chenweiliang.com/cwl-495.html
Benvenuto nel canale Telegram del blog di Chen Weiliang per ricevere gli ultimi aggiornamenti!
📚 Questa guida contiene un valore enorme, 🌟Questa è un'opportunità rara, non perderla! ⏰⌛💨
Condividi e metti mi piace se ti va!
La tua condivisione e i tuoi like sono la nostra continua motivazione!