Instrução CREATE TABLE

Use a instrução CREATE TABLE para criar uma tabela em um arquivo de banco de dados. O formato da instrução CREATE TABLE é:

Copiar
CREATE TABLE nome_tabela ( lista_elemento_tabela [, lista_elemento_tabela...] )

Na instrução, você especifica o nome e o tipo de dados de cada coluna.

  • nome_tabela é o nome da tabela. nome_tabela tem um limite de 100 caracteres. Uma tabela com o mesmo nome ainda não deve estar definida. O nome da tabela deve começar com um caractere alfabético. Se o nome da tabela começar com um caractere diferente de alfabético, coloque-o entre aspas duplas (identificador entre aspas).

  • O formato delista_elemento_tabela é:

    Copiar
    nome_campo tipo_campo [[repetições]]
    [DEFAULT expr] [UNIQUE | NOT NULL | PRIMARY KEY | GLOBAL]
    [FOREIGN KEY REFERENCES nome_tabela(nome_coluna)]
    [EXTERNAL string_caminho_relativo [SECURE | OPEN string_caminho_calc] [FEWER_FOLDERS]]
  • nome_campo é o nome do campo. Os nomes de campo devem ser exclusivos. Nomes de campo começam com um caractere alfabético Se o nome do campo começar com um caractere diferente de alfabético, coloque-o entre aspas duplas (identificador entre aspas).

    Exemplo

    A instrução CREATE TABLE para o campo nomeado _SOBRENOME é:

    Copiar
    CREATE TABLE "_FUNCIONÁRIO" (ID INT PRIMARY KEY, "_NOME" VARCHAR(20), "_SOBRENOME" VARCHAR(20))
  • Para a instrução CREATE TABLE repetições, especifique uma repetição de campo usando um número de 1 a 32000 entre colchetes após o tipo do campo.

    Exemplo

    Copiar
    EMPLOYEE_ID INT[4]
    LASTNAME VARCHAR(20)[4]
  • field_type pode ser qualquer um dos seguintes: NUMERIC, DECIMAL, INT, DATE, TIME, TIMESTAMP, VARCHAR, CHARACTER VARYING, BLOB, VARBINARY, LONGVARBINARY ou BINARY VARYING. Para NUMERIC e DECIMAL, você pode especificar a precisão e a escala. Por exemplo: DECIMAL(10,0). Para TIME e TIMESTAMP, você pode especificar a precisão. Por exemplo: TIMESTAMP(6). Para VARCHAR e CHARACTER VARYING, você pode especificar o tamanho da cadeia.

    Exemplo

    Copiar
    VARCHAR(255)
  • A palavra-chave DEFAULT permite que você defina um valor padrão para uma coluna. Para expr, você pode usar um valor de constante ou uma expressão. As expressões permitidas são USER, USERNAME, CURRENT_USER, CURRENT_DATE, CURDATE, CURRENT_TIME, CURTIME, CURRENT_TIMESTAMP, CURTIMESTAMP e NULL.

  • Definir uma coluna como UNIQUE seleciona automaticamente a opção de validação Exclusivo para o campo correspondente no arquivo de banco de dados do FileMaker Pro.

  • Definir uma coluna como NOT NULL seleciona automaticamente a opção de validação Não vazio para o campo correspondente no arquivo de banco de dados do FileMaker Pro. O campo é sinalizado como um Valor necessário na guia Campos da caixa de diálogo Gerenciar banco de dados no FileMaker Pro.

  • Para definir uma coluna como um campo de container, use BLOB, VARBINARY ou BINARY VARYING em field_type.

  • Para definir uma coluna como um campo de container que armazena dados externamente, use a palavra-chave EXTERNAL. string_caminho_relativo define a pasta em que os dados são armazenados externamente, relativa ao local do banco de dados do FileMaker Pro. Esse caminho deve ser especificado como diretório base na caixa de diálogo Gerenciar containers do FileMaker Pro. Você deve especificar SECURE para armazenamento seguro ou OPEN para armazenamento aberto. Se você estiver usando o armazenamento aberto, string_calc_relativo será a subpasta da pasta string_caminho_relativo em que os objetos container serão armazenados. O caminho deve usar barras (/) no nome da pasta. Especificar FEWER_FOLDERS é o mesmo que habilitar Com menos pastas para a fonte de dados.

  • Para definir um relacionamento de chave estrangeira, use a cláusula FOREIGN KEY REFERENCES após o tipo de campo. A coluna de chave estrangeira deve ser do tipo INT, NUMERIC, DECIMAL ou VARCHAR e deve corresponder ao tipo de dados da coluna referenciada. A tabela referenciada já deve existir, e a coluna referenciada deve existir nessa tabela.

    Com a cláusula FOREIGN KEY REFERENCES, a instrução CREATE TABLE ou ALTER TABLE cria o relacionamento no gráfico de relacionamentos do FileMaker. Essas instruções falham e retornam o erro 8201 se o relacionamento criar uma referência circular (ciclo) no gráfico de relacionamentos.

    Exemplo

    Copiar
    CREATE TABLE Orders (
        OrderID INT PRIMARY KEY,
        CustomerID INT FOREIGN KEY REFERENCES Customers(CustomerID),
        OrderDate DATE
    )

Exemplos

Uso

SQL de amostra

coluna de texto

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

coluna de texto, NOT NULL

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

coluna numérica

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

coluna de data

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

coluna de hora

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

coluna de carimbo de data/hora

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

coluna para campo de container

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

coluna para campo de container de armazenamento externo

Copiar
CREATE TABLE T7 (C1 BLOB EXTERNAL 'Files/MyDatabase/' SECURE) 
CREATE TABLE T8 (C1 BLOB EXTERNAL 'Files/MyDatabase/' OPEN 'Objects')

tabela com relacionamentos de chaves estrangeiras

Copiar
-- Criar primeiro as tabelas principais
CREATE TABLE Authors (AuthorID INT PRIMARY KEY, AuthorName VARCHAR(100) NOT NULL)
CREATE TABLE Genres (GenreID INT PRIMARY KEY, GenreName VARCHAR(50) NOT NULL)

-- Criar tabela secundária com chaves estrangeiras
CREATE TABLE Books (
    BookID INT PRIMARY KEY,
    Title VARCHAR(255) NOT NULL,
    AuthorID INT FOREIGN KEY REFERENCES Authors(AuthorID),
    GenreID INT FOREIGN KEY REFERENCES Genres(GenreID)
)

-- Criar tabela terciária com chave estrangeira
CREATE TABLE BooksChapter (
    ChapterID INT PRIMARY KEY,
    Chapter VARCHAR(255) NOT NULL,
    Book_ID INT FOREIGN KEY REFERENCES Books(BookID)
)