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

SQL Anywhere 11.0.1 (Français) » SQL Anywhere Server - SQL Usage » Creating Databases » Ensuring data integrity » Using domains

 

Creating domains (SQL)

You can use the CREATE DOMAIN statement to create and define domains. See CREATE DOMAIN statement.

Some pre-defined domains are included with SQL Anywhere. For example, the monetary domain MONEY.

♦  To create a new domain (SQL)
  1. Connect to a database.

  2. Execute a CREATE DOMAIN statement.

Example 1: Simple domains

Some columns in the database are used for employee names and others to store addresses. You might then define the following domains.

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

Having defined these domains, you can use them much as you would the built-in data types. For example, you can use these definitions to define a table, as follows.

CREATE TABLE Customers (
   ID INT  DEFAULT AUTOINCREMENT  PRIMARY KEY,
   Name persons_name,
   Street street_address);
Example 2: Default values, check constraints, and identifiers

In the above example, the table's primary key is specified to be of type integer. Indeed, many of your tables may require similar identifiers. Instead of specifying that these are integers, it is much more convenient to create an identifier domain for use in these applications.

When you create a domain, you can specify a default value and provide check constraint to ensure that no inappropriate values are typed into any column of this type.

Integer values are commonly used as table identifiers. A good choice for unique identifiers is to use positive integers. Since such identifiers are likely to be used in many tables, you could define the following domain.

CREATE DOMAIN identifier UNSIGNED INT
DEFAULT AUTOINCREMENT;

Using this definition, you can rewrite the definition of the Customers table, shown above.

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