CREATE TABLE 语句

使用 CREATE TABLE 语句在数据库文件中创建表。CREATE TABLE 语句的格式为:

复制
CREATE TABLE table_name ( table_element_list [, table_element_list...] )

在语句中,指定每列的名称和数据类型。

  • table_name 是表格的名称。table_name 的字符数限于 100。切勿事先定义同名的表。表名称必须以字母字符开头。如果表名称以非字母字符开头或包含点 (.),则用双引号将其括起来(带引号的标识符)。

  • table_element_list 格式为:

    复制
    field_name field_type [[repetitions]]
    [DEFAULT expr] [UNIQUE | NOT NULL | PRIMARY KEY | GLOBAL
    [EXTERNAL relative_path_string [SECURE | OPEN calc_path_string]]
  • field_name 是字段的名称。字段名称必须唯一。字段名以字母字符开头。如果字段名以非字母字符开头或包含点 (.),则用双引号将其括起来(带引号的标识符)。

    示例

    名为 _LASTNAME 的字段的 CREATE TABLE 语句为:

    复制
    CREATE TABLE "_EMPLOYEE" (ID INT PRIMARY KEY, "_FIRSTNAME" VARCHAR(20), "_LASTNAME" VARCHAR(20))
  • 对于 CREATE TABLE 语句 repetitions,在字段类型后使用方括号的中数字 1 至 32000 指定字段重复。

    示例

    复制
    EMPLOYEE_ID INT[4]
    LASTNAME VARCHAR(20)[4]
  • field_type 可以是以下任一项:NUMERICDECIMALINTDATETIMETIMESTAMPVARCHARCHARACTER VARYINGBLOBVARBINARYLONGVARBINARYBINARY VARYING。对于 NUMERICDECIMAL,您可以指定精度和标度。例如:DECIMAL(10,0)。对于 TIMETIMESTAMP,您可以指定精度。例如:TIMESTAMP(6)。对于 VARCHARCHARACTER VARYING,您可以指定字符串的长度。

    示例

    复制
    VARCHAR(255)
  • 利用 DEFAULT 关键字可设置列的默认值。对于 expr,可以使用常量值或表达式。允许的表达式为 USERUSERNAMECURRENT_USERCURRENT_DATECURDATECURRENT_TIMECURTIMECURRENT_TIMESTAMPCURTIMESTAMPNULL

  • 将某个列定义为 UNIQUE 会为 FileMaker Pro 数据库文件中的相应字段自动选择“唯一”验证选项。

  • 将某个列定义为 NOT NULL 会为 FileMaker Pro 数据库文件中的相应字段自动选择“不为空”验证选项。在 FileMaker Pro 中“管理数据库”对话框的“字段”选项卡中,该字段被标记为“必需值”。

  • 要将某个列定义为容器字段,请对 field_type 使用 BLOBVARBINARYBINARY VARYING

  • 要将某个列定义为在外部存储数据的容器字段,使用 EXTERNAL 关键字。relative_path_string 定义在外部存储数据的文件夹,相对于 FileMaker Pro 数据库的位置。在“FileMaker Pro 管理容器”对话框中,必须将此路径指定基本目录。必须为安全存储指定 SECURE,或为开放存储指定 OPEN。如果使用的是开放存储,calc_path_string 是要在其中存储容器对象的 relative_path_string 文件夹内部的文件夹。路径在文件夹名称中使用正斜杠 (/)。

示例

使用

示例 SQL

文本列

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

文本列,NOT NULL

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

数字列

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

日期列

复制
CREATE TABLE T3 (C1 DATE, C2 DATE, C3 DATE, C4 DATE)

时间列

复制
CREATE TABLE T4 (C1 TIME, C2 TIME, C3 TIME, C4 TIME)

时间戳列

复制
CREATE TABLE T5 (C1 TIMESTAMP, C2 TIMESTAMP, C3 TIMESTAMP, C4 TIMESTAMP)

用于容器字段的列

复制
CREATE TABLE T6 (C1 BLOB, C2 BLOB, C3 BLOB, C4 BLOB)

用于外部存储容器字段的列

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