Latest web development tutorials

comando di MySQL ALTER

Quando abbiamo bisogno di modificare la tabella di dati o modificare campo di tabella di dati, è necessario utilizzare il comando ALTER MySQL.

Tutorial prima dell'inizio di questo capitolo ci consentono di creare un tavolo, il nome della tabella: testalter_tbl.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use w3big;
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)

Eliminare, aggiungere o modificare un campo di tabella

Utilizzare i seguenti comandi ALTER e clausola di GOCCIA eliminare comando creato in precedenza Tabella I campi:

mysql> ALTER TABLE testalter_tbl  DROP i;

Se i dati della tabella unica rimasta un campo non è possibile utilizzare DROP per eliminare il campo.

MySQL utilizzare la clausola ADD per aggiungere colonne vogliono scheda, come esempi di campi nella tabella aggiungono i testalter_tbl e definire i tipi di dati:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Dopo aver eseguito il comando precedente, essi campi vengono automaticamente aggiunti alla fine del campo di tabella di 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, (dopo aver impostato si trova in un campo) si può usare MySQL fornire parola chiave FIRST (bit impostato nella prima colonna), dopo il nome di campo.

Prova la seguente dichiarazione ALTER TABLE, dopo l'implementazione di successo, l'uso MOSTRA COLONNE visualizzare la struttura della tabella cambiamento:

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;

PRIMA E DOPO parole chiave solo per la clausola ADD, quindi se si desidera ripristinare la posizione del campo tabella di dati sulla necessità di utilizzare GOCCIA eliminare un campo e quindi utilizzare Aggiungi per aggiungere al campo e definirne la posizione.


Modificare il nome del campo e digitare

Se è necessario modificare il tipo di campo e il nome, è possibile utilizzare cambiare o modificare la clausola del comando ALTER.

Ad esempio, il tipo di campo c da char (1) a char (10), è possibile eseguire il seguente comando:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Usa CAMBIO clausola di grammatica sono molto diversi. Dopo la parola chiave CHANGE, seguito dal nome del campo che si desidera modificare, e quindi specificare un nuovo nome di campo e il tipo. Provare i seguenti esempi:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effetto di ALTER TABLE su valori nulli e predefiniti

Quando si modifica il campo, è possibile specificare se includere o se impostato solo il valore di default.

Il seguente esempio, il campo j specificato non è NULL e il valore di default è 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Se non si imposta un valore predefinito, MySQL imposterà automaticamente i valori di default dei campi a NULL.


Modificare i valori di campo di default

È possibile utilizzare il ALTER modificare il valore predefinito del 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 i ALTER e DROP clausole di comando predefinito per eliminare il campo, come esempi:

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:

Modificare i tipi di tabelle di dati, può essere realizzato utilizzando il comando ALTER e clausola TYPE. Provate gli esempi seguenti, modificheremo il tipo di tabella testalter_tbl MYISAM:

Nota: Vedere i tipi di tabelle dati possono utilizzare l'istruzione STATO Mostra tabella.

mysql> ALTER TABLE testalter_tbl TYPE = 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)

Modificare il nome della tabella

Se è necessario modificare il nome della tabella di dati, è possibile utilizzare la clausola RENAME in ALTER TABLE da raggiungere.

Provare i seguenti esempi di tabelle di dati testalter_tbl rinominare alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

comando ALTER può anche essere utilizzato per creare ed eliminare gli indici tabelle di dati MySQL, questa caratteristica ci introdurrà nel prossimo capitolo.