Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 数据完整性 »

 

创建域

管理员可以在 Sybase Central 中创建域并将其指派给相应的列。

前提条件

DBA 特权。

上下文和注释

SQL Anywhere 附带了一些预定义的域。例如,货币域 MONEY。

 ♦ 创建新域 (Sybase Central)
  1. 使用 SQL Anywhere 12 插件连接到数据库。

  2. 在左窗格中,右击 [],然后单击 [新建] » []。

  3. 请按照 [创建域向导] 中的说明进行操作。

 ♦ 将域指派到列 (Sybase Central)
  1. 使用 SQL Anywhere 12 插件连接到数据库。

  2. 在左窗格中,双击 []。

  3. 单击表。

  4. 在右窗格中,单击 [] 选项卡。

  5. 选择列,然后在 [数据类型] 字段中单击省略号(三个句点)按钮。

  6. 单击 [数据类型] 选项卡,然后单击 []。

  7. 在 [] 列表中,选择一个域。

  8. 单击 [确定]。

结果

随即会创建域并将其指派给指定列。

下一步

无。

示例

数据库中的一些列用于存储雇员姓名,其它列用于存储地址。那么,您可以定义以下域。

CREATE DOMAIN persons_name CHAR(30)
CREATE DOMAIN street_address CHAR(35);

示例

定义了这些域后,则可以按照类似使用内置数据类型的方式使用它们。例如,可以用这些定义来定义表,如下所示。

CREATE TABLE Customers (
   ID INT  DEFAULT AUTOINCREMENT  PRIMARY KEY,
   Name persons_name,
   Street street_address);

示例

在上例中,表的主键指定为整数类型。实际上,许多表都需要相似的标识符。创建一个标识符域供这些应用程序使用,要比将主键指定为整数更为方便。

创建域时,可以指定一个缺省值,并提供检查约束,以确保不能将不适当的值键入任何属于这种类型的列。

通常使用整数值作为表标识符。正整数非常适合于用作唯一标识符。由于可能在许多表中使用这样的标识符,因此可以定义以下域。

CREATE DOMAIN identifier UNSIGNED INT
DEFAULT AUTOINCREMENT;

可以使用此定义重写 Customers 表的定义,如上所示。

CREATE TABLE Customers2 (
   ID identifier PRIMARY KEY,
   Name persons_name,
   Street street_address
);

 另请参见