Latest web development tutorials

Polecenie ALTER MySQL

Kiedy trzeba zmodyfikować tabelę danych lub zmodyfikować pole tabeli danych, należy użyć polecenia MySQL ALTER.

Tutorial przed rozpoczęciem tego rozdziału pozwalają nam stworzyć tabelę, nazwę tabeli: 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)

Usuń, dodać lub zmodyfikować pole tabeli

Użyj następujących poleceń ALTER i klauzula DROP usuwać polecenia tworzony przede Tabela I dziedzinach:

mysql> ALTER TABLE testalter_tbl  DROP i;

Jeżeli dane zawarte w tabeli jedyne jedno pole nie można używać kropli do usunięcia z boiska.

MySQL użyć klauzuli ADD, aby dodać kolumny chcą arkusza jako przykłady pól w tabeli i dodać testalter_tbl i zdefiniować typy danych:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Po przeprowadzeniu tej komendy, to obszary są automatycznie dodana do końca pola tabeli danych.

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)

Jeśli trzeba określić lokalizację nowego pola (po ustawieniu się w polu), można użyć słowa kluczowego zapewniają MySQL Pierwsze (ustawiony bit w pierwszej kolumnie), po nazwie pola.

Spróbuj wykonać następujące czynności ALTER TABLE, po udanej realizacji, wykorzystywanie POKAŻ KOLUMNY zobaczyć strukturę zmiany tabeli:

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;

Pierwszy i PO słowami kluczowymi dla klauzuli ADD, więc jeśli chcesz, aby zresetować pozycję pole tabeli danych na potrzeby wykorzystania DROP usunąć pole, a następnie wykorzystać Dodaj, aby dodać pole i ustawić pozycję.


Zmienić nazwę pola i wpisać

Jeśli trzeba zmienić typ pola i nazwy, można użyć zmiany lub modyfikacji klauzuli polecenia ALTER.

Na przykład, c typ pola z char (1) Char (10), można wykonać następujące polecenie:

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

Stosowanie klauzuli CHANGE gramatyki są bardzo różne. Po słowie kluczowym zmieni, po którym następuje nazwa pola, które chcesz zmodyfikować, a następnie podać nową nazwę pola i typ. Wypróbuj poniższe przykłady:

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

Wpływ ALTER tabeli na wartości NULL i domyślnych

Podczas modyfikacji pola, można określić, czy włączyć czy tylko ustawić wartość domyślną.

Poniższy przykład podano pola j NOT NULL, a wartość domyślna to 100.

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

Jeśli nie ustawić wartość domyślną, MySQL automatycznie ustawi domyślne pól null.


Zmodyfikować domyślne wartości pól

Można użyć ALTER zmienić domyślną wartość pola, wypróbuj poniższe przykłady:

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)

Można również użyć polecenia alter domyślny i upuść klauzule usunąć pole, jako przykłady:

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:

Modyfikacja typy tabel danych, można osiągnąć za pomocą polecenia ALTER i pkt typu. Wypróbuj poniższe przykłady, będziemy modyfikować typ tabeli testalter_tbl MyISAM:

Uwaga: Patrz tabela typy danych można użyć instrukcji SHOW TABLE STATUS.

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)

Zmienić nazwę tabeli

Jeśli trzeba zmienić nazwę tabeli danych, można użyć klauzuli Zmień nazwę ALTER TABLE do osiągnięcia.

Wypróbuj poniższe przykłady tabel danych testalter_tbl zmieniać nazwy alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Polecenie ALTER może być również wykorzystywane do tworzenia i usuwania indeksy tabel danych MySQL, tę funkcję zostaną zaprezentowane w następnym rozdziale.