Creates a new proxy table representing an existing object on a remote server.
CREATE EXISTING TABLE [owner.]table_name [(column-definition, ...)] AT 'location-string'
column-name data-type [NOT NULL]
remote-server-name.[db-name].[owner].object-name | remote-server-name;[db-name];[owner];object-name
Create a proxy table named blurbs for the blurbs table at the remote server server_a.
CREATE EXISTING TABLE blurbs ( author_id id not null, copy text not null) AT 'server_a.db1.joe.blurbs'
Create a proxy table named blurbs for the blurbs table at the remote server server_a. Sybase IQ derives the column list from the metadata it obtains from the remote table.
CREATE EXISTING TABLE blurbs AT 'server_a.db1.joe.blurbs'
Create a proxy table named rda_employee for the employee table at the Sybase IQ remote server asiqdemo.
CREATE EXISTING TABLE rda_employee AT 'asiqdemo..dba.employee'
The CREATE EXISTING TABLE statement creates a new local, proxy table that maps to a table at an external location. The CREATE EXISTING TABLE statement is a variant of the CREATE TABLE statement. The EXISTING keyword is used with CREATE TABLE to specify that a table already exists remotely and that its metadata is to be imported into Sybase IQ. This establishes the remote table as a visible entity to its users. Sybase IQ verifies that the table exists at the external location before it creates the table.
Tables used as proxy tables cannot have names longer than 30 characters.
If the object does not exist (either host data file or remote server object), the statement is rejected with an error message.
Index information from the host data file or remote server table is extracted and used to create rows for the system table sysindexes. This defines indexes and keys in server terms and enables the query optimizer to consider any indexes that may exist on this table.
Referential constraints are passed to the remote location when appropriate.
If column-definitions are not specified, Sybase IQ derives the column list from the metadata it obtains from the remote table. If column-definitions are specified, Sybase IQ verifies the column-definitions. Column names, data types, lengths, and null properties are checked for the following:
Column names must match identically (although case is ignored).
Data types in the CREATE EXISTING TABLE statement must match or be convertible to the data types of the column on the remote location. For example, a local column data type is defined as numeric, while the remote column data type is money.
Each column's NULL property is checked. If the local column's NULL property is not identical to the remote column's NULL property, a warning message is issued, but the statement is not aborted.
Each column's length is checked. If the length of char, varchar, binary, decimal and numeric columns do not match, a warning message is issued, but the command is not aborted. You may choose to include only a subset of the actual remote column list in your CREATE EXISTING statement.
AT clause The AT clause specifies the location of the remote object. The AT clause supports the semicolon (;) as a delimiter. If a semicolon is present anywhere in the location string, the semicolon is the field delimiter. If no semicolon is present, a period is the field delimiter. This allows filenames and extensions to be used in the database and owner fields. Semicolon field delimiters are used primarily with server classes not currently supported; however, you can also use them in situations where a period would also work as a field delimiter. For example, the following statement maps the table proxy_a to the Adaptive Server Anywhere database mydb on the remote server myasa:
CREATE EXISTING TABLE proxy_a1 AT 'myasa;mydb;;a1'
Automatic commit.
Must have RESOURCE authority. To create a table for another user, you must have DBA authority.
Chapter 17, “Server Classes for Remote Data Access” and Chapter 16, “Accessing Remote Data” in the Sybase IQ System Administration Guide.