CREATE TABLE-Anweisung

Verwenden Sie die CREATE TABLE-Anweisung, um eine Tabelle in einer Datenbankdatei zu erstellen. Das Format der CREATE TABLE-Anweisung ist:

Kopieren
CREATE TABLE tabellenname ( tabellenelementliste [, tabellenelementliste...] )

In der Anweisung geben Sie Name und Datentyp jeder Spalte an.

  • tabellenname ist der Name der Tabelle. tabellenname hat ein Limit von 100 Zeichen. Eine Tabelle mit dem gleichen Namen darf nicht bereits definiert sein. Der Tabellenname muss mit einem Zeichen aus dem Alphabet beginnen. Wenn der Tabellenname mit etwas anderem als einem Zeichen aus dem Alphabet beginnt oder einen Punkt enthält, schließen Sie ihn in Anführungszeichen ein (Quoted Identifier).

  • Das Format für tabellenelementliste ist:

    Kopieren
    feldname feldtyp [[wiederholungen]]
    [DEFAULT expr] [UNIQUE | NOT NULL | PRIMARY KEY | GLOBAL]
    [EXTERNAL relativer_pfad_string [SECURE | OPEN berechn_pfad_string] [FEWER_FOLDERS]]
  • feldname ist der Name des Felds. Feldnamen müssen eindeutig sein. Feldnamen beginnen mit einem Zeichen aus dem Alphabet. Wenn der Feldname mit einem anderen Zeichen beginnt oder einen Punkt enthält, umschließen Sie ihn mit Anführungszeichen (Quoted Identifier).

    Beispiel

    Die CREATE TABLE-Anweisung für das Feld namens _NACHNAME lautet:

    Kopieren
    CREATE TABLE "_ANGESTELLTER" (ID INT PRIMARY KEY, "_VORNAME" VARCHAR(20), "_NACHNAME" VARCHAR(20))
  • Geben Sie für die CREATE TABLE-Anweisung wiederholungen eine Feldwiederholung in Form einer Zahl zwischen 1 und 32000 in Klammern nach dem Feldtyp an.

    Beispiel

    Kopieren
    ANGESTELLTER_ID INT[4]
    NACHNAME VARCHAR(20)[4]
  • feldtyp kann einer der folgenden Optionen sein: NUMERIC, DECIMAL, INT, DATE, TIME, TIMESTAMP, VARCHAR, CHARACTER VARYING, BLOB, VARBINARY, LONGVARBINARY oder BINARY VARYING. Für NUMERIC und DECIMAL können Sie Genauigkeit und Skala angeben. Beispiel: DECIMAL(10,0). Für TIME und TIMESTAMP können Sie die Genauigkeit angeben. Beispiel: TIMESTAMP(6). Für VARCHAR und CHARACTER VARYING können Sie die Länge der Zeichenfolge angeben.

    Beispiel

    Kopieren
    VARCHAR(255)
  • Über das Schlüsselwort DEFAULT können Sie einen Standardwert für eine Spalte festlegen. Für expr können Sie einen konstanten Wert oder einen Ausdruck verwenden. Zulässige Ausdrücke sind USER, USERNAME, CURRENT_USER, CURRENT_DATE, CURDATE, CURRENT_TIME, CURTIME, CURRENT_TIMESTAMP, CURTIMESTAMP und NULL.

  • Die Definition einer Spalte als UNIQUE wählt automatisch die Überprüfungsoption Eindeutig für das entsprechende Feld in der FileMaker Pro-Datenbankdatei aus.

  • Die Definition einer Spalte als NOT NULL wählt automatisch die Überprüfungsoption Nicht leer für das entsprechende Feld in der FileMaker Pro-Datenbankdatei aus. Das Feld wird als Wert erforderlich im Register Felder des Dialogfelds „Datenbank verwalten“ in FileMaker Pro markiert.

  • Um eine Spalte als Containerfeld zu definieren, verwenden Sie BLOB, VARBINARY oder BINARY VARYING für feldtyp.

  • Um eine Spalte als Containerfeld zu definieren, das Daten extern speichert, verwenden Sie das Schlüsselwort EXTERNAL. relativer_pfad_string definiert den Ordner, in dem Daten extern, relativ zum Speicherort der FileMaker Pro-Datenbank gespeichert werden. Dieser Pfad muss als Basisverzeichnis im FileMaker Pro-Dialogfeld „Container verwalten“ angegeben werden. Sie müssen entweder SECURE für einen sicheren Speicher oder OPEN für einen offenen Speicher angeben. Wenn Sie einen offenen Speicher verwenden, ist der berechn_pfad_string der Ordner in dem Ordner relativer_pfad_string, in dem Containerobjekte gespeichert werden sollen. Der Pfad muss Schrägstriche (/) im Ordnernamen verwenden. Die Angabe von FEWER_FOLDERS entspricht der Aktivierung von Mit weniger Ordnern für die Datenquelle.

Beispiele

Verwenden von

Beispiel-SQL

Textspalte

Kopieren
CREATE TABLE T1 (C1 VARCHAR, C2 VARCHAR (50), C3 VARCHAR (1001), C4 VARCHAR (500276))

Textspalte, NOT NULL

Kopieren
CREATE TABLE T1NN (C1 VARCHAR NOT NULL, C2 VARCHAR (50) NOT NULL, C3 VARCHAR (1001) NOT NULL, C4 VARCHAR (500276) NOT NULL)

Zahlenspalte

Kopieren
CREATE TABLE T2 (C1 DECIMAL, C2 DECIMAL (10,0), C3 DECIMAL (7539,2), C4 DECIMAL (497925,301))

Datumsspalte

Kopieren
CREATE TABLE T3 (C1 DATE, C2 DATE, C3 DATE, C4 DATE)

Zeitspalte

Kopieren
CREATE TABLE T4 (C1 TIME, C2 TIME, C3 TIME, C4 TIME)

Zeitstempelspalte

Kopieren
CREATE TABLE T5 (C1 TIMESTAMP, C2 TIMESTAMP, C3 TIMESTAMP, C4 TIMESTAMP)

Spalte für Containerfeld

Kopieren
CREATE TABLE T6 (C1 BLOB, C2 BLOB, C3 BLOB, C4 BLOB)

Spalte für extern gespeichertes Containerfeld

Kopieren
CREATE TABLE T7 (C1 BLOB EXTERNAL 'Dateien/MeineDatenbank/' SECURE) 
CREATE TABLE T8 (C1 BLOB EXTERNAL 'Dateien/MeineDatenbank/' OPEN 'Objekte')