Giriş
ANSI SQL 4 çeşit constraint tanımlamaya izin veriyor. Açıklaması şöyle. CREATE TABLE ile sadece Primary Key tanımlanabilir.
ANSI SQL provides four types of constraints including PRIMARY KEY, UNIQUE, FOREIGN KEY and CHECK.
UNIQUE desteklenmiyor. Eğer kullanmaya çalışırsak şu hatayı alırız
java.sql.SQLException: Too many constraints - only PRIMARY KEY is supported for CREATE TABLE
FOREIGN KEY desteklenmiyor. Eğer kullanmaya çalışırsak şu hatayı alırız
java.sql.SQLException: Too many constraints - only PRIMARY KEY is supported for CREATE TABLE
DEFAULT sadece sabitler için destekleniyor. Eğer DEFAULT CURRENT_TIMESTAMP şeklinde kullanmaya çalışırsak şu hatayı alırız
java.sql.SQLException: Non-constant DEFAULT expressions are not supported [colName=MYCOLUMN]
WITH Parametreleri
WITH ile kullanılabilen parametreler şöyle
TEMPLATE=<cache’s template name>BACKUPS=<number of backups>ATOMICITY=<ATOMIC | TRANSACTIONAL | TRANSACTIONAL_SNAPSHOT>WRITE_SYNCHRONIZATION_MODE=<PRIMARY_SYNC | FULL_SYNC | FULL_ASYNC>CACHE_GROUP=<group name>AFFINITY_KEY=<affinity key column name>CACHE_NAME=<custom name of the new cache>DATA_REGION=<existing data region name>KEY_TYPE=<custom name of the key type>VALUE_TYPE=<custom name of the value type of the new cache>WRAP_KEY=<true | falseWRAP_VALUE=<true | false>
CREATE TABLE WITH CACHE_NAME yazısına bakabilirsiniz
CREATE TABLE WITH TEMPLATE yazısına bakabilirsiniz
VIEW
Ayrıca CREATE VIEW desteklenmiyor
Kullanım Örnekleri
Şöyle yaparız. VALUE_TYPE ile deserialize işleminde hangi sınıfa dönüştürüleceği belirtilir. KEY_TYPE ile kullanılacak "compound key" belirtilir. Affinity Colocation yazısına bakabilirsiniz
CREATE TABLE IF NOT EXISTS Things ( Id UUID, Name VARCHAR, EffectiveDate TIMESTAMP, PRIMARY KEY(Id) ) WITH "TEMPLATE = PARTITIONED, CACHE_NAME = consoleappserver.Thing, VALUE_TYPE = consoleappserver.Thing"
Hiç yorum yok:
Yorum Gönder