CREATE TABLE statement

When creating tables for compatibility, be aware of the following items.

NULL in columns

For compatible treatment of NULL:

Check constraints

Sybase IQ enforces check constraints on base, global temporary, and local temporary tables, and user-defined data types. Users can log check integrity constraint violations and specify the number of violations that can occur before a LOAD statement rolls back.

Sybase IQ does not allow the creation of a check constraint that it cannot evaluate, such as check constraints comprised of user-defined functions, proxy tables, or non-IQ tables. Constraints that cannot be evaluated are detected the first time the table on which the check constraint is defined is used in a LOAD, INSERT, or UPDATE statement. Sybase IQ does not allow check constraints containing:

If you have databases created with a previous version of Sybase IQ, you should run the stored procedure sp_iqprintconstraints, to list all IQ tables and columns in a format that allows you to recreate them after deletion. If you want to drop all constraints on IQ tables in the database, you can then run the sp_iqdropconstraints procedure.

Adaptive Server Enterprise and Adaptive Server Anywhere enforce CHECK constraints. Adaptive Server Anywhere allows subqueries in check constraints.

Sybase IQ supports user-defined data types which allow constraints to be encapsulated in the data type definition.

Referential integrity constraints

Sybase IQ enforces referential integrity as described in Chapter 9, “Ensuring Data Integrity” in the Sybase IQ System Administration Guide.

Actions for enforcing integrity are supported as follows:

Default values in a column

Default value support differs as follows:

Identity columns

Identity column support differs as follows:

Computed columns

Computed column support differs as follows:

Temporary tables

You can create a temporary table by placing a pound sign (#) without an owner specification in front of the table name in a CREATE TABLE statement. These temporary tables are Sybase IQ declared temporary tables, and are available only in the current connection. For information about declared temporary tables in Sybase IQ, see the DECLARE LOCAL TEMPORARY TABLE statement.

For information about creating tables, see the CREATE TABLE statement.

Locating tables

Physical placement of a table is carried out differently in Adaptive Server Enterprise and in Sybase IQ. Sybase IQ supports the ON segment-name clause, but segment-name refers to a Sybase IQ dbspace.