CREATE TABLE deyimi, LindormTable veya LindormTSDB içinde tablolar oluşturur. VARCHAR, TIMESTAMP ve BIGINT gibi veri türlerini ve TTL ile COMPRESSION gibi tablo özelliklerini destekleyerek çeşitli iş senaryolarına uyum sağlar.
Motor ve sürüm
CREATE TABLE, LindormTable ve LindormTSDB için geçerlidir.
LindormTSDB, 3.4.32 ve sonraki sürümlerde standart CREATE TABLE sözdizimini destekler. Sürümü görüntülemek veya yükseltmek için bkz. LindormTSDB sürüm notları ve Küçük sürüm yükseltme.
Sözdizimi
create_table_statement ::= CREATE TABLE [ IF NOT EXISTS ] table_identifier
'('
column_definition
( ',' column_definition )*
',' PRIMARY KEY '(' primary_key ')'
( ',' {KEY|INDEX} [index_identifier]
[ USING index_method_definition ]
[ INCLUDE column_identifier ( ',' column_identifier )* ]
[ WITH index_options ]
)*
')'
[ PARTITION BY partition_definition ]
[ ZORDER BY zorder_column_list ]
[ WITH table_options ]
column_definition ::= column_identifier data_type [ NOT NULL ]
primary_key ::= column_identifier [ ',' column_identifier (ASC|DESC)]
index_method_definition ::= { KV | SEARCH }
index_options ::= '('
option_definition (',' option_definition )*
')'
partition_definition ::= HASH '(' column_identifier (',' column_identifier )* ')'
zorder_column_list ::= column_identifier ( ',' column_identifier )*
table_options ::= '(' option_definition (',' option_definition )* ')'
option_definition ::= option_identifier '=' string_literal
Sözdizimi farkları
CREATE TABLE sözdizimi, LindormTable ve LindormTSDB arasında farklılık gösterir. Aşağıdaki tabloda, motor başına desteklenen parametreler karşılaştırılmıştır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kullanım
Tablo adı (table_identifier)
Tablo adı aşağıdaki gereksinimleri karşılamalıdır:
Ad; rakamlar, büyük harfler, küçük harfler, nokta (.), tire (-) ve alt çizgi (_) içerebilir.
Ad nokta (.) veya tire (-) ile başlayamaz.
Adın uzunluğu 1 ila 255 karakter arasında olmalıdır.
Sütun tanımı (column_definition)
|
Sözdizimi |
Zorunlu |
Açıklama |
|
sütun adı (column_identifier) |
Evet |
|
|
veri türü (data_type) |
Evet |
Desteklenen veri türleri hakkında daha fazla bilgi için bkz. Veri türleri. Önemli
Zaman serisi tablosu oluştururken TIMESTAMP veri türünü kullanıyorsanız şunlara dikkat edin:
|
|
NULL kısıtlaması |
Hayır |
Sütunun NULL değerlere izin verip vermediğini belirtir. Önemli
Lindorm SQL bu kısıtlamayı doğrulamaz. Doğrulama bunun yerine depolama motoru tarafından gerçekleştirilir. NULL kısıtlamasının doğrulanması, değişkenlik gösteren depolama motoru kurallarına bağlıdır. Bu nedenle, NOT NULL olarak tanımlanmış bir sütuna bile NULL değerler yazabilmeniz mümkündür. Verilerin beklendiği gibi yazıldığından emin olmak için aşağıdaki gereksinimleri uygulayın:
|
Birincil anahtar (primary_key)
Birincil anahtar, bir tablodaki verileri benzersiz şekilde tanımlar ve bir veya daha fazla sütundan oluşur. Tablo oluştururken bir birincil anahtar (PRIMARY KEY) belirtmeniz gerekir.
Oluşturulduktan sonra birincil anahtar değiştirilemez. Birincil anahtarınızı dikkatlice tasarlayın.
CREATE TABLE deyimini kullanarak tablo oluştururken şunlara dikkat edin:
|
Motor türü |
Açıklama |
|
LindormTable |
|
|
LindormTSDB |
|
Dizin ifadesi (KEY|INDEX)
CREATE TABLE deyimiyle birlikte bir dizin oluşturmak için KEY veya INDEX anahtar sözcüğünü kullanın.
Dizin ifadesi (KEY|INDEX) yalnızca LindormTable 2.7.7 ve sonraki sürümlerde ve Lindorm SQL 2.8.6.0 ve sonraki sürümlerde desteklenir.
LindormTable ve Lindorm SQL sürümlerini kontrol etmek için bkz. LindormTable sürüm notları ve SQL sürüm notları. Konsolda gerekli sürümlere yükseltme yapamıyorsanız Lindorm teknik desteği ile iletişime geçin. DingTalk Kimliği s0s3eg3'tür.
Kullanım
Açıkça bir dizin adı belirtmezseniz sistem varsayılan olarak bir ad oluşturur. Oluşturulan dizin adının biçimi
TableName_idx_${auto-incremented ID}şeklindedir.Dizin ifadesi kullanarak şu anda yalnızca ikincil dizinler ve arama dizinleri oluşturabilirsiniz.
-
İkincil dizinler için varsayılan sütun dahil etme durumu:
Lindorm SQL 2.9.3.10 ve sonraki sürümler
İkincil bir dizin oluştururken
INCLUDEyan tümcesini belirtmezseniz diğer tüm sütunlar varsayılan olarak dizine dahil edilmez.Lindorm SQL 2.9.3.10'dan önceki sürümler
İkincil bir dizin oluştururken
INCLUDEyan tümcesini belirtmezseniz diğer tüm sütunlar varsayılan olarak dizine dahil edilir.NotBu durum, INDEX_COVERED_TYPE dizin özelliğini
COVERED_ALL_COLUMNS_IN_SCHEMAolarak ayarlamaya eşdeğerdir. Tablo dinamik bir tabloyse bu durum özelliğiCOVERED_DYNAMIC_COLUMNSolarak ayarlamaya eşdeğerdir. Tablo oluştururken
KEYveyaINDEXyan tümcesi belirtir ancak MUTABILITY ve CONSISTENCY özelliklerini açıkça belirtmezseniz tablo aşağıdaki varsayılan özelliklerle oluşturulur:CONSISTENCY = 'strong'veMUTABILITY='MUTABLE_LATEST'.CREATE TABLE deyimi bir dizin ifadesi içeriyorsa sistem önce tabloyu oluşturur ardından dizini oluşturur. Dizin oluşturma sırasında bir özel durum oluşursa tablo ve dizin kalabilir ve otomatik olarak temizlenmez. Bunları görüntülemek için
SHOWveDESCRIBEgibi deyimleri kullanabilirsiniz ancak tabloya ve dizine veri yazamayabilir veya bunlarda sorgu çalıştıramayabilirsiniz. Kalan tablo ve dizini silip yeniden oluşturmanızı öneririz.
Bölüm (partition_definition)
Bölümler yalnızca LindormTSDB tarafından desteklenir. Zaman serisi tablosunda PARTITION BY yan tümcesinde kullanılan sütun bir VARCHAR birincil anahtar sütunu olmalıdır.
Hash bölümlemesi için bir veya daha fazla sütun belirtmek üzere PARTITION BY HASH(column1, column2, ..., columnN) kullanın. Örneğin: PARTITION BY HASH(c1, p1).
Tablo özellikleri (table_options)
Tablo özellikleri yalnızca LindormTable tarafından desteklenir. Aşağıdaki tablo özelliklerini eklemek için WITH anahtar sözcüğünü kullanabilirsiniz:
|
Seçenek |
Tür |
Açıklama |
|
COMPRESSION |
STRING |
Tablo için sıkıştırma algoritması. Geçerli değerler:
Not
LindormTable 2.3.4'ten önceki sürümlerde varsayılan olarak hiçbir sıkıştırma algoritması belirtilmez. LindormTable 2.3.4 ve sonraki sürümlerde varsayılan olarak ZSTD algoritması kullanılır. |
|
TTL |
INT |
Verinin yaşam süresi (TTL), saniye (s) cinsinden. Not
|
|
COMPACTION_MAJOR_PERIOD |
LONG |
Sistemin Not
Varsayılan değer: Math.Min(TTL, 1.728.000.000 ms). TTL ayarlamazsanız varsayılan değer 20 gündür (20 × 24 × 60 × 60 × 1.000 = 1.728.000.000 ms). |
|
MUTABILITY |
STRING |
Temel tablo için yazma modu. Bu özellik dizinleme davranışını etkiler. Varsayılan değer: Geçerli değerler:
Değerler hakkında daha fazla bilgi için bkz. Yüksek performanslı yerel ikincil dizinler. Önemli
Dizin oluşturulduktan sonra MUTABILITY özelliğini değiştiremezsiniz. Bu özelliği değiştirmek için öncelikle tablodaki tüm dizinleri silmeniz gerekir. Veri kaybını önlemek amacıyla bu işlemi gerçekleştirmeden önce verilerinizi yedekleyin. |
|
CONSISTENCY |
STRING |
Tablonun tutarlılık düzeyi. Bölgeler arası örnekler için birincil ve ikincil çoğaltmalar arasındaki veri tutarlılığını belirtir. Geçerli değerler:
Önemli
Bölgeler arası örneklerde iş yükünüz artırma, ekleme veya dizin güncellemeleri gibi okuma-değiştirme-yazma işlemleri içeriyorsa çoğaltmalar arasında veri tutarlılığını sağlamak için birincil tablonun CONSISTENCY özelliğini |
|
NUMREGIONS |
INT |
Tablo için önceden bölünmüş bölgelerin sayısı. |
|
CHS |
INT |
Sıcak ve soğuk verileri ayıran sınır, saniye cinsinden. Not
|
|
STARTKEY ve ENDKEY |
Birincil anahtardaki ilk sütunla aynı veri türü. |
Tablonun bölgelerini önceden bölmek için başlangıç ve bitiş anahtarı. Not
|
|
SPLITKEYS |
Birincil anahtardaki ilk sütunla aynı veri türü. |
Tablonun tüm önceden bölünmüş bölgeleri için başlangıç anahtarları. Not
|
|
SPLITALGO |
STRING |
Önceden bölümlendirme için bölme algoritmasını tanımlar. Desteklenen algoritmalar şunlardır:
|
|
DYNAMIC_COLUMNS |
STRING |
Dinamik sütunların etkinleştirilip etkinleştirilmeyeceği. Geçerli değerler:
Not
Dinamik sütunlar yalnızca Varbinary veri türünü destekler. Dinamik sütunlar hakkında daha fazla bilgi için bkz. Dinamik sütunlar. |
|
VERSIONS |
STRING |
Her sütun değeri için saklanacak sürüm sayısı. 1'e eşit veya 1'den büyük bir tam sayı olmalıdır. Varsayılan: 1. Veri sürümlendirme hakkında daha fazla bilgi için bkz. Veri sürümlendirme. Önemli
VERSIONS özelliği için yüksek bir değer sorgu ve depolama performansını düşürebilir. Bu değeri 1 olarak ayarlamanızı öneririz. |
|
BLOB_BUCKET_NAME |
STRING |
Tablodaki BLOB sütunları için paket adı. Paket adı aşağıdaki kuralları takip etmelidir:
Not
|
LindormTable 2.2.16'dan önceki sürümler tablo özelliklerini ayarlamak için WITH anahtar sözcüğünü desteklemez. Özellik anahtar sözcüğünü tek tırnak işaretleri (') içine almanız gerekir. Özellik değerleri veri türlerine göre ayarlanır; örneğin STRING değerleri tek tırnak işaretleri (') içine alınmalıdır. Örneğin: CREATE TABLE IF NOT EXISTS t1(c1 varchar, c2 bigint, c3 int, c4 int, PRIMARY KEY(c1,c2)) 'CONSISTENCY'='strong';.
Örnekler
Tablo oluşturma
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
);
Doğrulama
Tablonun oluşturulduğunu doğrulamak için DESCRIBE table sensor; deyimini çalıştırın.
Dizin içeren tablo oluşturma
Tabloyla birlikte ikincil bir dizin oluşturun.
CREATE TABLE IF NOT EXISTS sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time),
KEY (temperature, time)
);
Doğrulama
Tablonun oluşturulduğunu doğrulamak için DESCRIBE table sensor; komutunu ve ikincil dizinin oluşturulduğunu doğrulamak için SHOW INDEX FROM sensor; komutunu çalıştırın.
TTL ve sıkıştırma algoritması belirtme
30 günlük TTL (2.592.000 saniye) ve ZSTD sıkıştırmasıyla geniş bir tablo oluşturun.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) WITH (COMPRESSION='ZSTD', TTL='2592000');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. current table details alanında view table properties seçeneğine tıklayarak COMPRESSION ve TTL parametrelerini kontrol edin.
Major birleştirme aralığını belirtme
10 günlük (864.000.000 milisaniye) major birleştirme aralığıyla geniş bir tablo oluşturun.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) WITH (COMPACTION_MAJOR_PERIOD='864000000');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. current table details alanında view table properties seçeneğine tıklayarak COMPACTION_MAJOR_PERIOD parametresinin değerini kontrol edin.
Dinamik sütunları etkinleştirme
Dinamik sütunlara veri yazmak için DYNAMIC_COLUMNS değerini TRUE olarak ayarlayın.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) WITH (DYNAMIC_COLUMNS='TRUE');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. current table details alanında view table properties seçeneğine tıklayarak DYNAMIC_COLUMNS parametresinin değerini kontrol edin.
Sıcak ve soğuk veri sınırını belirtme
Veri arşivleme için sıcak-soğuk veri sınırı içeren geniş bir tablo oluşturun.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) WITH (CHS = '86400', CHS_L2 = 'storagetype=COLD');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. current table details alanında view table properties seçeneğine tıklayarak CHS ve CHS_L2 parametrelerini kontrol edin.
Birden çok özelliği aynı anda ayarlama
Sıkıştırma, TTL ve sıcak-soğuk veri sınırı içeren geniş bir tablo oluşturun.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) WITH (
COMPRESSION='ZSTD',
CHS = '86400',
CHS_L2 = 'storagetype=COLD',
TTL = '2592000');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. current table details alanında view table properties seçeneğine tıklayarak COMPRESSION, CHS, CHS_L2 ve TTL parametrelerini kontrol edin.
Bölümleri yapılandırma
Başlangıç anahtarı 1000 ve bitiş anahtarı 9000 olacak şekilde beş bölüme önceden bölünmüş geniş bir tablo oluşturun.
CREATE TABLE sensor (
p1 INTEGER NOT NULL,
c1 INTEGER,
c2 VARCHAR,
c3 VARCHAR,
PRIMARY KEY(p1)
) WITH (NUMREGIONS='5', STARTKEY='1000', ENDKEY='9000');
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. Shard information alanında her bölüm için startKey ve endKey parametrelerini kontrol edin.
Birden çok bölüm için başlangıç anahtarlarını ayarlama
Kod örnekleri
-
Sayısal anahtarlara göre bölümleri belirtme (veri dağıtımınıza bağlı olarak)
Beş bölüm için önceden tanımlanmış başlangıç anahtarlarına sahip geniş bir tablo oluşturun; bu işlem altı önceden bölünmüş bölümle sonuçlanır.
CREATE TABLE sensor ( p1 INT NOT NULL, p2 INT NOT NULL, c1 VARCHAR, c2 BIGINT, PRIMARY KEY(p1, p2) ) WITH (SPLITKEYS = '100000,300000,500000,700000,900000'); -
Dize anahtarlarına göre bölümleri belirtme (veri dağıtımınıza bağlı olarak)
CREATE TABLE your_table ( address VARCHAR NOT NULL, col1 VARCHAR, PRIMARY KEY (address) ) WITH ( SPLITKEYS = '0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff' ); -
Bölme algoritması belirtme
CREATE TABLE your_table2 ( address VARCHAR NOT NULL, col1 VARCHAR, PRIMARY KEY (address) ) WITH ( NUMREGIONS = 256, SPLITALGO = 'HexStringSplit' );
Doğrulama
Tablonun oluşturulduğunu doğrulamak için
DESCRIBE table sensor;deyimini çalıştırın.Küme yönetim sistemi içindeki Overview sayfasına gidin ve hedef tablonun adına tıklayın. Shard information alanında her bölüm için startKey ve endKey parametrelerini kontrol edin.
Bölüm anahtarı sütununu açıkça belirtme
Çoğu sorgu tek bir cihaz için anlık verileri aldığından device_id değerini bölüm anahtarı sütunu olarak belirtin.
CREATE TABLE sensor (
device_id VARCHAR NOT NULL,
region VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
temperature DOUBLE,
humidity BIGINT,
PRIMARY KEY(device_id, region, time)
) PARTITION BY HASH(device_id);
Doğrulama
Tablonun oluşturulduğunu doğrulamak için DESCRIBE TABLE sensor; deyimini çalıştırın.
Coğrafi konum tablosu oluşturma
-
Herhangi bir türdeki coğrafi verileri yazmanıza olanak tanıyan genel Geometry mekansal veri türünü destekleyen bir tablo oluşturun.
CREATE TABLE geoms(gid INT, g GEOMETRY, PRIMARY KEY(gid));Herhangi bir coğrafi veri türünden veri yazın.
UPSERT INTO geoms(gid, g) VALUES(0,ST_GeomFromText('POINT(-10.1 3.3)')),(1,ST_GeomFromText('LINESTRING(-12.2 4.3, -10.2 4.3)')),(2,ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))')); -
Point veri türü için bir tablo oluşturun. Bu tabloya yalnızca nokta verileri yazılabilir.
CREATE TABLE pts(gid INT, g GEOMETRY(POINT), PRIMARY KEY(gid));Nokta verileri yazın.
UPSERT INTO pts(gid, g) VALUES(0, ST_MakePoint(0,0)),(1, ST_MakePoint(1,1)); -
Polygon veri türü için bir tablo oluşturun. Bu tabloya yalnızca çokgen verileri yazılabilir.
CREATE TABLE polys(gid INT, g GEOMETRY(POLYGON), PRIMARY KEY(gid));Çokgen verileri yazın.
UPSERT INTO polys(gid,g) VALUES(0,ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))')); -
LineString veri türü için bir tablo oluşturun. Bu tabloya yalnızca çizgi verileri yazılabilir.
CREATE TABLE lines(gid INT, g GEOMETRY(LINESTRING), PRIMARY KEY(gid));Çizgi verileri yazın.
UPSERT INTO lines(gid,g) VALUES(0, ST_GeomFromText('LINESTRING(-12.2 4.3, -10.2 4.3)')); -
MULTIPOINT veri türü için bir tablo oluşturun. Bu tabloya yalnızca çoklu nokta verileri yazılabilir.
CREATE TABLE multipoints(gid INT, g GEOMETRY(MULTIPOINT), PRIMARY KEY(gid));Çoklu nokta verileri yazın.
UPSERT INTO multipoints(gid,g) VALUES(0, ST_GeomFromText('MULTIPOINT (10 40, 40 30, 20 20, 30 10)')); -
MULTILINESTRING veri türü için bir tablo oluşturun. Bu tabloya yalnızca çoklu çizgi verileri yazılabilir.
CREATE TABLE multilines(gid INT, g GEOMETRY(MULTILINESTRING), PRIMARY KEY(gid));Çoklu çizgi verileri yazın.
UPSERT INTO multilines(gid,g) VALUES(0, ST_GeomFromText('MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))')); -
MULTIPOLYGON veri türü için bir tablo oluşturun. Bu tabloya yalnızca çoklu çokgen verileri yazılabilir.
CREATE TABLE multipolys(gid INT, g GEOMETRY(MULTIPOLYGON), PRIMARY KEY(gid));Çoklu çokgen verileri yazın.
UPSERT INTO multipolys(gid,g) VALUES(0, ST_GeomFromText('MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))')); -
GEOMETRYCOLLECTION veri türü için bir tablo oluşturun. Bu tabloya yalnızca geometri koleksiyonu verileri yazılabilir.
CREATE TABLE collections(gid INT, g GEOMETRY(GEOMETRYCOLLECTION), PRIMARY KEY(gid));Geometri koleksiyonu verileri yazın.
UPSERT INTO collections(gid,g) VALUES(0, ST_GeomFromText('GEOMETRYCOLLECTION (POINT (40 10), LINESTRING (10 10, 20 20, 10 40), POLYGON ((40 40, 20 45, 45 30, 40 40)))')); -
Geometry türünde birden çok sütun içeren bir tablo oluşturun.
CREATE TABLE mix(gid INT, pt GEOMETRY(POINT), ply GEOMETRY(POLYGON), PRIMARY KEY(gid));