MySQL altera l'aggiunta per aumentare più posizioni di campo? Spiegazione dettagliata dell'utilizzo dell'istruzione di modifica della colonna

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!

🔔 Sii il primo a ricevere la preziosa "Guida all'utilizzo dello strumento AI di marketing dei contenuti ChatGPT" nella directory principale del canale! 🌟
📚 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!

 

发表 评论

L'indirizzo email non verrà pubblicato. 必填 项 已 用 * 标注

滚动 到 顶部