SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

SOFTWARE


ALTER Table

ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
 
alter_specification:
          ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
  oder    ADD INDEX [index_name] (index_col_name,...)
  oder    ADD PRIMARY KEY (index_col_name,...)
  oder    ADD UNIQUE [index_name] (index_col_name,...)
  oder    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  oder    CHANGE [COLUMN] old_col_name create_definition
  oder    MODIFY [COLUMN] create_definition
  oder    DROP [COLUMN] col_name
  oder    DROP PRIMARY KEY
  oder    DROP INDEX key_name
  oder    RENAME [AS] new_tbl_name
  oder    table_option

ALTER erlaubt es, die Struktur einer Tabelle vollständig zu verändern. Intern legt MySQL eine temporäre Kopie dieser Tabelle an, verändert die Struktur und kopiert die Daten wieder zurück. Bei großen Datenbanken kann dies erhebliche Zeit in Anspruch nehmen.

 
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));

Um Tabelle von t1 nach t2 umzubenennen:

 
mysql> ALTER TABLE t1 RENAME t2;

Um z.B. eine INTEGER Spalte von a nach b umzubenennen:

 
mysql> ALTER TABLE t1 CHANGE a b INTEGER;

Um einen Spaltentyp zu verändern, ohne den Namen zu verändern:

 
mysql> ALTER TABLE t1 CHANGE b b INTEGER;

Ab Version 3.22.16a funktioniert auch folgende Syntax:

 
mysql> ALTER TABLE t1 MODIFY b INTEGER;

Um eine Spalte von INTEGER nach TINYINT NOT NULL zu konvertieren, und gleichzeitig Spalte b von CHAR(10) nach CHAR(20) unter Umbenennung von b nach c zu verändern:

 
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

Einfügen einer TIMESTAMP Spalte mit Namen d:

 
mysql> ALTER TABLE t2 ADD d TIMESTAMP;

Um einen Index an Spalte d anzufügen, und diese als primary key zu bestimmen:

 
mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

Spalte c Löschen:

 
mysql> ALTER TABLE t2 DROP COLUMN c;

Hinzufügen einer AUTO_INCREMENT integer Spalte namens c:

 
mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
           ADD INDEX (c);

Man beachte, daß wir c indiziert haben, weil AUTO_INCREMENT Spalten zwangsläufig indiziert werden müssen. Wir erklären c als NOT NULL, weil indizierte Spalten nicht NULL sein dürfen.

Einige Dinge sollten Sie bei ALTER unbedingt beachten:

  • Um ALTER TABLE verwenden zu können, ist es erforderlich, daß Sie die Rechte select, insert, delete, update, create und drop an der Tabelle besitzen. Das ist angesichts der internen Abläufe in MySQL beim ALTER Statement auch verständlich.
  • IGNORE ist eine MySQL Erweiterung gegenüber ANSI SQL 92. Sie kontrolliert, die ALTER TABLE arbeitet, wenn es Duplikate bei UNIXQUE Keys einer neuen Tabelle gibt. Wenn IGNORE nicht angegeben ist, wird die Copie abgebrochen und ds Statement ignoriert. Wenn aber IGNORE angegeben wurde, dann wird nur die erste Spalte verwendet, wenn ein UNIQUE Key angegeben ist, alle anderen Spalten werden gelöcht.
  • Es dürfen mehrere ADD, ALTER, DROP und CHANGE Klauseln in einer einzigen ALTER TABLE Statement verwendet werden.
  • CHANGE col_name, DROP col_name und DROP INDEX sind erweiterungen von MySQL gegenüber ANSI SQL 92.
  • MODIFY ist eine ORACLE Erweiterung zu ALTER TABLE.
  • Das Wort COLUMN kann auch weggelassen werden.
  • Wenn ALTER TABLE tbl_name RENAME AS neuer_name ohne irgendwelche Optionen verwendet wird, werden die Dateinamen auf der Festplatte einfach umbenannt. Es werden keine temporären Tabellen angelegt, die später eventuell gelöscht werden müßten.
  • Falls durch CHANGE oder MODIFY eine Spalte verkürtzt wird, auf welchem ein INDEX liegt, dann wird die Länge nur auf die Länge des INDEX verkürzt, damit der INDEX noch arbeitsfähig ist. Andernfalls müssen sie den INDEX löschen, die Spalte verändern, und den INDEX neu erstellen.
  • Mit MySLQ ab Version 3.22 darf nun der Ausdruck FIRST oder ADD... AFTER col_name verwendet werden, um eine Spalte nach einer bestimmten Positeon einzufügen. Standardmäßig wird am Ende stets eine Spalte angefügt.
  • DROP INDEX entfernt einen INDEX auf einer Spalte
  • DROP PRIMARY KEY löscht den primären INDEX. Falls dieser nicht existiert, so wird diejenige Spalte verworfen, die den ersten UNIQUE Key ist.
  • Mit der C API Funktion mysql_info() kann man herausfinden, wieviele Einträge kopiert wurden, und bei der Verwendung von IGNORE wird angegeben, wieviele Einträge gelöscht wurden.
  • Die Ausdrücke FOREIGN KEY, CHECK und REFERENCES haben keine Funktion.


DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere