SnowConvert: Sybase IQ DDLs¶
Übersetzungsreferenz für alle DDL-Anweisungen, denen das Wort CREATE
vorangestellt ist.
CREATE TABLE¶
Beschreibung¶
Erzeugt eine neue Tabelle in der aktuellen Datenbank. Sie definieren eine Liste von Spalten, die jeweils Daten eines bestimmten Typs enthalten. Der Eigentümer der Tabelle ist derjenige, der den CREATE TABLE-Befehl erteilt hat.
Weitere Informationen finden Sie in der CREATE TABLE
Dokumentation.
Grammatikalische Syntax¶
CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE
[ IF NOT EXISTS ] [ <owner>. ]<table-name>
… ( <column-definition> [ <column-constraint> ] …
[ , <column-definition> [ <column-constraint> ] …]
[ , <table-constraint> ] … )
|{ ENABLE | DISABLE } RLV STORE
…[ IN <dbspace-name> ]
…[ ON COMMIT { DELETE | PRESERVE } ROWS ]
[ AT <location-string> ]
[PARTITION BY
<range-partitioning-scheme>
| <hash-partitioning-scheme>
| <composite-partitioning-scheme> ]
<column-definition> ::=
<column-name> <data-type>
[ [ NOT ] NULL ]
[ DEFAULT <default-value> | IDENTITY ]
[ PARTITION | SUBPARTITION ( <partition-name> IN <dbspace-name> [ , ... ] ) ]
<default-value> ::=
<special-value>
| <string>
| <global variable>
| [ - ] <number>
| ( <constant-expression> )
| <built-in-function>( <constant-expression> )
| AUTOINCREMENT
| CURRENT DATABASE
| CURRENT REMOTE USER
| NULL
| TIMESTAMP
| LAST USER
<special-value> ::=
CURRENT
{ DATE | TIME | TIMESTAMP | USER | PUBLISHER }
| USER
<column-constraint> ::=
IQ UNIQUE ( <integer> )
| { [ CONSTRAINT <constraint-name> ]
{ UNIQUE
| PRIMARY KEY
| REFERENCES <table-name> [ ( <column-name> ) ] [ ON { UPDATE | DELETE } RESTRICT ] }
[ IN <dbspace-name> ]
| CHECK ( <condition> )
}
<table-constraint> ::=
[ CONSTRAINT <constraint-name> ]
{ { UNIQUE | PRIMARY KEY } ( <column-name> [ , … ] )
[ IN <dbspace-name> ]
| <foreign-key-constraint>
| CHECK ( <condition> )
}
<foreign-key-constraint> ::=
FOREIGN KEY [ <role-name> ] [ ( <column-name> [ , <column-name> ] … ) ]
…REFERENCES <table-name> [ ( <column-name> [ , <column-name> ] … ) ]
…[ <actions> ] [ IN <dbspace-name> ]
<actions> ::=
[ ON { UPDATE | DELETE } RESTRICT ]
<location-string> ::=
{ <remote-server-name>. [ <db-name> ].[ <owner> ].<object-name>
| <remote-server-name>; [ <db-name> ]; [ <owner> ];<object-name> }
<range-partitioning-scheme> ::=
RANGE ( <partition-key> ) ( <range-partition-decl> [,<range-partition-decl> … ] )
<partition-key> ::= <column-name>
<range-partition-declaration> ::=
<range-partition-name> VALUES <= ( {<constant> | MAX } ) [ IN <dbspace-name> ]
<hash-partitioning-scheme> ::=
HASH ( <partition-key> [ , <partition-key>, … ] )
<composite-partitioning-scheme> ::=
<hash-partitioning-scheme> SUBPARTITION BY <range-partitioning-scheme>
AT LOCATION¶
Beschreibung¶
Erzeugt eine entfernte Tabelle (Proxy). (Sybase SQL-Referenz)
Diese Syntax wird in Snowflake nicht unterstützt.
Grammar Syntax
AT <location-string>
Beispielhafte Quellcode-Muster
Eingabecode:
CREATE TABLE t1
(
DATA VARCHAR(10)
)
AT 'SERVER_A.db1.joe.t1';
Ausgabecode:
CREATE OR REPLACE TABLE t1
(
DATA VARCHAR(10)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0002 - UNSUPPORTED REMOTE TABLE SYNTAX ***/!!!
AT 'SERVER_A.db1.joe.t1'
Zugehörige EWIs
[SSC-EWI-SY0002](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sybaseEWI. md#ssc-ewi-sy0002): UNSUPPORTED REMOTE TABLE SYNTAX.
CONSTRAINTS
Description
Dies gewährleistet die Genauigkeit und Zuverlässigkeit der Daten in der Tabelle. Wenn es einen Verstoß zwischen der Einschränkung und der Datenaktion gibt, wird die Aktion abgebrochen. (Sybase SQL-Referenz)
Warnung
Diese Syntax wird teilweise unterstützt.
Grammatikalische Syntax¶
<table-constraint> ::=
[ CONSTRAINT <constraint-name> ]
{ { UNIQUE | PRIMARY KEY } ( <column-name> [ , … ] )
[ IN <dbspace-name> ]
| <foreign-key-constraint>
| CHECK ( <condition> )
}
<foreign-key-constraint> ::=
FOREIGN KEY [ <role-name> ] [ ( <column-name> [ , <column-name> ] … ) ]
…REFERENCES <table-name> [ ( <column-name> [ , <column-name> ] … ) ]
…[ <actions> ] [ IN <dbspace-name> ]
<actions> ::=
[ ON { UPDATE | DELETE } RESTRICT ]
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
CREATE TABLE t_constraint (
id1 INT NOT NULL,
id2 INT PRIMARY KEY,
age INT CHECK (age >= 18),
email VARCHAR(255) UNIQUE,
product_id INT REFERENCES products(id) ON DELETE RESTRICT IN SOMEPLACE,
cod_iq VARCHAR(20) IQ UNIQUE(5),
CONSTRAINT unq_name_email UNIQUE (name, email),
CONSTRAINT fk_ord_line FOREIGN KEY (ord_id, line_id) REFERENCES ord_lines(ord_id,line_id)
);
Ausgabecode:¶
CREATE OR REPLACE TABLE t_constraint (
id1 INT NOT NULL,
id2 INT PRIMARY KEY,
age INT
!!!RESOLVE EWI!!! /*** SSC-EWI-0035 - CHECK STATEMENT NOT SUPPORTED ***/!!!
CHECK (age >= 18),
email VARCHAR(255) UNIQUE,
product_id INT REFERENCES products (id) ON DELETE RESTRICT ,
cod_iq VARCHAR(20)
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0003 - UNSUPPORTED IQ UNIQUE CONSTRAINT ***/!!!
IQ UNIQUE(5),
CONSTRAINT unq_name_email UNIQUE (name, email),
CONSTRAINT fk_ord_line FOREIGN KEY (ord_id, line_id) REFERENCES ord_lines (ord_id, line_id)
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
Zugehörige EWIs¶
[SSC-EWI-0035](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0035): CHECK STATEMENT NOT SUPPORTED.
[SSC-EWI-SY0003](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sybaseEWI. md#ssc-ewi-sy0003): UNSUPPORTED IQ UNIQUE CONSTRAINT.
DEFAULT¶
Beschreibung¶
Legt den Standardwert einer Spalte in einer CREATE TABLE-Anweisung fest.
Warnung
Diese Syntax wird in Snowflake teilweise unterstützt.
Grammatikalische Syntax¶
<default-value> ::=
<special-value>
| <string>
| <global variable>
| [ - ] <number>
| ( <constant-expression> )
| <built-in-function>( <constant-expression> )
| AUTOINCREMENT
| CURRENT DATABASE
| CURRENT REMOTE USER
| NULL
| TIMESTAMP
| LAST USER
<special-value> ::=
CURRENT
{ DATE | TIME | TIMESTAMP | USER | PUBLISHER }
| USER
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
create table t_defaults
(
col1 timestamp default current utc timestamp,
col2 timestamp default current timestamp,
col3 varchar default current user,
col4 varchar default current remote user,
col5 varchar default last user,
col6 varchar default current publisher,
col7 varchar default current date,
col8 varchar default current database,
col9 varchar default current time,
col10 varchar default user,
col11 int default autoincrement,
col12 int identity,
col13 int default -10,
col14 int default 'literal',
col15 int default null
)
;
Ausgabecode:¶
CREATE OR REPLACE TABLE t_defaults
(
col1 timestamp default CURRENT_TIMESTAMP,
col2 timestamp default CURRENT_TIMESTAMP,
col3 VARCHAR default CURRENT_USER,
col4 VARCHAR default
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT REMOTE USER IN SNOWFLAKE ***/!!! current remote user,
col5 VARCHAR default
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE LAST USER IN SNOWFLAKE ***/!!! last user,
col6 VARCHAR default
!!!RESOLVE EWI!!! /*** SSC-EWI-SY0001 - UNSUPPORTED DEFAULT VALUE CURRENT PUBLISHER IN SNOWFLAKE ***/!!! current publisher,
col7 VARCHAR default CURRENT_DATE,
col8 VARCHAR default CURRENT_DATABASE,
col9 VARCHAR default CURRENT_TIME,
col10 VARCHAR DEFAULT CURRENT_USER,
col11 INT IDENTITY ORDER,
col12 INT IDENTITY ORDER,
col13 INT default -10,
col14 INT default 'literal',
col15 INT default null
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
(ENABLE | DISABLE) RLV STORE¶
Beschreibung¶
Steuert die Funktion des Versionierungsspeichers auf Zeilenebene. (Sybase SQL-Referenz).
Bemerkung
Diese Syntax wird in Snowflake nicht benötigt.
Grammatikalische Syntax¶
{ ENABLE | DISABLE } RLV STORE
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
CREATE TABLE rlv_table
(id INT)
ENABLE RLV STORE;
Ausgabecode:¶
CREATE TABLE rlv_table
(id INT)
;
IF NOT EXISTS¶
Beschreibung¶
Stellt sicher, dass die Tabelle nur erstellt wird, wenn sie noch nicht existiert, und verhindert so Duplikate und Fehler in Ihrem SQL-Skript. (Sybase SQL-Referenz).
Diese Syntax wird in Snowflake vollständig unterstützt.
Grammar Syntax
IF NOT EXISTS
Sample Source Patterns
Input Code:
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
);
Output Code:
CREATE TABLE IF NOT EXISTS table1 (
col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2024" }}';
IN DBSPACE
Description
Gibt den DB Speicherplatz für Datenspeicher an. (Sybase SQL- Referenz).
Bemerkung
Diese Syntax wird in Snowflake nicht benötigt. Snowflake kümmert sich automatisch um die Speicherung.
Grammatikalische Syntax¶
IN <dbspace-name>
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
CREATE TABLE dbspace_table (
id INT PRIMARY KEY
)
IN my_dbspace;
Ausgabecode:¶
CREATE OR REPLACE TABLE dbspace_table (
id INT PRIMARY KEY
);
ON COMMIT¶
Beschreibung¶
Legt das Verhaltensweise der temporären Tabelle fest, wenn ein Commit durchgeführt wird. (Sybase SQL-Referenz)
Warnung
Diese Syntax wird teilweise unterstützt.
Grammatikalische Syntax¶
[ ON COMMIT { DELETE | PRESERVE } ROWS ]
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
CREATE LOCAL TEMPORARY TABLE temp_employees (
DATA VARCHAR(255)
) ON COMMIT DELETE ROWS;
CREATE LOCAL TEMPORARY TABLE temp_projects (
DATA VARCHAR(255)
) ON COMMIT PRESERVE ROWS;
Ausgabecode:¶
CREATE OR REPLACE TEMPORARY TABLE temp_employees (
DATA VARCHAR(255)
)
-- --** SSC-FDM-0008 - ON COMMIT NOT SUPPORTED **
-- ON COMMIT DELETE ROWS
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
CREATE OR REPLACE TEMPORARY TABLE temp_projects (
DATA VARCHAR(255)
) ON COMMIT PRESERVE ROWS
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
Zugehörige EWIs¶
[SSC-FDM-0008](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0008): On Commit wird nicht unterstützt.
PARTITION BY¶
Beschreibung¶
Alle Zeilen einer Tabellenpartition sind physisch zusammenhängend. (Sybase SQL-Referenz)
Bemerkung
Diese Syntax wird in Snowflake nicht benötigt.
Grammatikalische Syntax¶
PARTITION BY
<range-partitioning-scheme>
| <hash-partitioning-scheme>
| <composite-partitioning-scheme>
<range-partitioning-scheme> ::=
RANGE ( <partition-key> ) ( <range-partition-decl> [,<range-partition-decl> … ] )
<partition-key> ::= <column-name>
<range-partition-declaration> ::=
<range-partition-name> VALUES <= ( {<constant> | MAX } ) [ IN <dbspace-name> ]
<hash-partitioning-scheme> ::=
HASH ( <partition-key> [ , <partition-key>, … ] )
<composite-partitioning-scheme> ::=
<hash-partitioning-scheme> SUBPARTITION BY <range-partitioning-scheme>
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
-- Range Partitioning
CREATE TABLE sales (
sale_id INT,
sale_date DATE,
amount DECIMAL(10, 2)
)
PARTITION BY RANGE (sale_date) (
PARTITION p1 VALUES <= ('2023-01-01'),
PARTITION p2 VALUES <= ('2024-01-01'),
PARTITION p3 VALUES < MAXVALUE
);
-- Hash Partitioning
CREATE TABLE customers (
customer_id INT,
customer_name VARCHAR(255)
)
PARTITION BY HASH (customer_id) (
PARTITION p1,
PARTITION p2,
PARTITION p3,
PARTITION p4
);
-- Composite Partitioning (Hash-Range)
CREATE TABLE orders (
order_id INT,
customer_id INT,
order_date DATE,
amount DECIMAL(10,2)
)
PARTITION BY HASH (customer_id)
SUBPARTITION BY RANGE (order_date) (
PARTITION p1 VALUES <= ('2023-01-01'),
PARTITION p2 VALUES <= ('2024-01-01'),
PARTITION p3 VALUES < MAXVALUE
);
Ausgabecode:¶
-- Range Partitioning
CREATE TABLE sales (
sale_id INT,
sale_date DATE,
amount DECIMAL(10, 2)
)
;
-- Hash Partitioning
CREATE TABLE customers (
customer_id INT,
customer_name VARCHAR(255)
);
-- Composite Partitioning (Hash-Range)
CREATE TABLE orders (
order_id INT,
customer_id INT,
order_date DATE,
amount DECIMAL(10,2)
);
TEMPORARY TABLES¶
Beschreibung¶
In Sybase IQ GLOBAL | LOCAL TEMPORARY
werden temporäre Tabellen erstellt, die nur für die Sitzung existieren. Diese Tabellen sind sitzungsspezifisch und werden automatisch gelöscht, wenn die Sitzung endet. Sie helfen dabei, Zwischenergebnisse oder Arbeitsdaten zu speichern, ohne das permanente Datenbankschema zu beeinträchtigen. Er kann auch nur durch Hinzufügen eines #
am Anfang des Namens erstellt werden.
Warnung
Diese Syntax wird in Snowflake teilweise unterstützt.
Grammatikalische Syntax¶
CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE
Beispielhafte Quellcode-Muster¶
Eingabecode:¶
CREATE LOCAL TEMPORARY TABLE TABLE01 (
col1 INTEGER
);
CREATE GLOBAL TEMPORARY TABLE TABLE02 (
col1 INTEGER
);
CREATE TABLE #TABLE03(
col1 INTEGER
);
Ausgabecode:¶
CREATE OR REPLACE TEMPORARY TABLE TABLE01 (
col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
--** SSC-FDM-0009 - GLOBAL TEMPORARY TABLE FUNCTIONALITY NOT SUPPORTED. **
CREATE OR REPLACE TABLE TABLE02 (
col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
CREATE OR REPLACE TEMPORARY TABLE T_TABLE03 (
col1 INTEGER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "sybase", "convertedOn": "03/19/2025", "domain": "test" }}'
;
Zugehörige EWIs¶
SSC-FDM-0009: GLOBAL TEMPORARY TABLE-Funktionalität nicht unterstützt.