MySQL ALTER Command

MySQL ALTER
kommandoen er svært nyttig når du ønsker å endre et navn på tabellen, ethvert bord felt, eller hvis du vil legge til eller slette en eksisterende kolonne i en tabell.

La oss begynne med etableringen av en tabell kalt testalter_tbl
root @ host # mysql -u root -p passord, Enter passord. ******* mysql > bruke Tutorials; Database changedmysql > opprette tabellen testalter_tbl - > (- ≫ jeg int, - > c CHAR (1) - >); Query OK, 0 rader berørt (0,05 sek) mysql > VIS kolonner fra testalter_tbl; + ------- + --------- + ------ + ----- + --------- + --- ---- + | feltet | Skriv inn | null | Key | standard | Extra | + ------- + --------- + ------ + ----- + --------- + ------ - + | jeg | int (11) | JA | | NULL | || c | char (1) | JA | | NULL | | + ------- + --------- + ------ + ----- + --------- + ------- mer enn 2 rader i sett (0,00 sek)
slippe, legge til eller flytter en kolonne:

Tenk deg at du ønsker å slippe en eksisterende kolonne i
ovenfra MySQL tabellen så vil du bruke < b> DROP
klausul sammen med ALTER
kommandoen som følger:
mysql > ALTER TABLE testalter_tbl DROP i;.

En DROP
vil ikke fungere hvis kolonnen er den eneste igjen i tabellen

Hvis du vil legge til en kolonne, bruk ADD og angi kolonnedefinisjonen . Følgende uttalelse gjenoppretter i
kolonnen til testalter_tbl:
mysql > ALTER TABLE testalter_tbl legger jeg INT;

Etter å utstede denne erklæringen, vil testalter inneholde de samme to kolonnene som den hadde da du opprettet tabellen, men vil ikke ha helt den samme strukturen. Det er fordi nye kolonner legges til slutten av tabellen som standard. Så selv om i
opprinnelig var den første kolonnen i mytbl, nå er det den siste
mysql >.; VIS kolonner fra testalter_tbl; + ------- + --------- + ------ + ----- + --------- + --- ---- + | feltet | Skriv inn | null | Key | standard | Extra | + ------- + --------- + ------ + ----- + --------- + ------ - + | c | char (1) | JA | | NULL | || jeg | int (11) | JA | | NULL | | + ------- + --------- + ------ + ----- + --------- + ------- mer enn 2 rader i sett (0,00 sek)

for å indikere at du vil ha en kolonne på en bestemt posisjon i tabellen, enten bruke første til å gjøre det den første kolonnen eller eTTER col_name for å indikere at den nye kolonnen skal plasseres etter col_name . Prøv følgende ALTER TABLE-setninger, bruker Vis kolonner etter hver enkelt å se hvilken effekt hver har:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl legger jeg INT FØRSTE; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl legger jeg INT ETTER c;

først, og etter bransjen fungerer bare med ADD klausulen. Dette betyr at hvis du ønsker å flytte en eksisterende kolonne i en tabell, må du først slippe den og deretter legge den i den nye posisjonen

Endre en kolonne definisjon eller navn.

For å skifte en kolonne definisjon, bruk ENDRER
eller ENDRE
klausul sammen med ALTER-kommandoen. For eksempel vil endre kolonne c
fra CHAR (1) til CHAR (10), gjør dette:
mysql > ALTER TABLE testalter_tbl ENDRER c CHAR (10);

Med ENDRE, er syntaksen litt annerledes. Etter endringen søkeord, du navnet på kolonnen du vil endre, og angi den nye definisjonen, som inkluderer det nye navnet. Prøv ut følgende eksempel:
mysql > ALTER TABLE testalter_tbl ENDRE ij BIGINT;

Hvis du nå bruke ENDRE å konvertere j fra BIGINT tilbake til INT uten å endre kolonnenavnet, vil uttalelsen være som forventet:
mysql > ALTER TABLE testalter_tbl ENDRE jj INT;
Effekten av ALTER TABLE på Null og Standardverdi attributter:

Når du omforme og endre en kolonne, kan du også angi hvorvidt kolonnen kan inneholde nullverdier og hva standardverdien er. Faktisk, hvis du ikke gjør dette, MySQL tildeler automatisk verdier for disse attributtene

Her er et eksempel, hvor NOT NULL kolonne vil ha verdi 100 som standard
mysql >..; ALTER TABLE testalter_tbl - > ENDRER j BIGINT NOT NULL DEFAULT 100;

Hvis du ikke bruker over kommandoen, og deretter MySQL vil fylle opp NULL verdier i alle kolonnene

Endre en kolonne s Standardverdi:.

du kan endre en standardverdi for hvilken som helst kolonne ved hjelp av ALTER-kommandoen. Prøv ut følgende eksempel
mysql >.; ALTER TABLE testalter_tbl ALTER jeg sette Standard 1000; mysql > VIS kolonner fra testalter_tbl; + ------- + --------- + ------ + ----- + --------- + --- ---- + | feltet | Skriv inn | null | Key | standard | Extra | + ------- + --------- + ------ + ----- + --------- + ------ - + | c | char (1) | JA | | NULL | || jeg | int (11) | JA | | 1000 | | + ------- + --------- + ------ + ----- + --------- + ------- mer enn 2 rader i sett (0,00 sek)

Du kan fjerne standard begrensningen fra hvilken som helst kolonne ved hjelp av DROP klausul sammen med ALTER-kommandoen
mysql >.; ALTER TABLE testalter_tbl ALTER jeg slippe STANDARD; mysql > VIS kolonner fra testalter_tbl; + ------- + --------- + ------ + ----- + --------- + --- ---- + | feltet | Skriv inn | null | Key | standard | Extra | + ------- + --------- + ------ + ----- + --------- + ------ - + | c | char (1) | JA | | NULL | || jeg | int (11) | JA | | NULL | | + ------- + --------- + ------ + ----- + --------- + ------- mer enn 2 rader i sett (0,00 sek)
Endre en tabell Type:

Du kan bruke en tabell type ved hjelp av Skriv
klausul sammen med ALTER-kommandoen. Prøv ut følgende eksempel for å endre testalter_tbl til MyISAM
tabellen typen

For å finne ut den nåværende form av en tabell, bruker SHOW TABLE STATUS uttalelse
mysql >..; ALTER TABLE testalter_tbl TYPE = MyISAM; mysql > SHOW TABLE STATUS LIKE 'testalter_tbl' \\ G *************************** 1. rad *********** ***** navn: testalter_tbl Type: MyISAM Row_format: Fast rader: 0 Avg_row_length: 0 Data_length: 0Max_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: Kommentar: en rad i sett (0,00 sek)
Gi nytt navn til en tabell:

For å endre navnet på en tabell, bruker du Endre navn
alternativet i ALTER TABLE-setningen. Prøv ut følgende eksempel for å endre navn testalter_tbl til alter_tbl
mysql >.; ALTER TABLE testalter_tbl Endre navn for å alter_tbl;

Du kan bruke ALTER-kommandoen til å opprette og slippe INDEX på en MySQL-fil. Vi vil se denne funksjonen i neste kapittel.



Next Page: