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.