Синтаксис SQL, Создать таблицу, База данных Advantage - PullRequest
1 голос
/ 03 ноября 2011

Мне нужно создать таблицу в Advantage Database Architect - код SQL, который я использовал ранее в более старом проекте, (упрощенная версия)

CREATE TABLE IF NOT EXISTS "SomacountData"
(
   "Index" AUTOINC,
   "Data" BLOB,
   "Section" INTEGER DEFAULT -1,
   "factor" FLOAT,
   "ThresHold" FLOAT DESCRIPTION "Calculated Threshold",
PRIMARY KEY ("Index") COMPRESS NONE
DESCRIPTION "SomacountData"
LANGUAGE "ANSI Standard" SORT "Default Order"
USER MAJOR VERSION 1
USER MINOR VERSION 4
);

В Архитекторе это выглядит несколько более сложным - предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Некоторые указатели:

  • FLOAT, вероятно, лучше всего сопоставить с DOUBLE.
  • Установка DEFAULT и указание первичного индекса требует дополнительных операторов EXECUTE sp_ModifyFieldProperty (см. Документация )
  • Не думаю, что в ADS есть DESCRIPTION.
  • IF NOT EXISTS можно решить по-разному, если у вас есть словарь, вы можете запросить внутреннюю таблицу system.tables словаря. Если вы этого не сделаете, вы можете просто проигнорировать ошибку создания, используя TRY CREATE TABLE ... CATCH ALL END TRY.

Если у вас есть какой-либо конкретный вопрос, вы должны создать новый вопрос для SO.

UPDATE:

Вы также можете использовать встроенный конструктор таблиц и выгружать код таблицы в SQL, но это не решит вашу проблему IF NOT EXISTS.

0 голосов
/ 03 ноября 2011

Где твой внешний ключ? Или это твой единственный стол. Внешние ключи имеют решающее значение в SQL, реляционная алгебра не работает без них. Также я бы использовал больше ограничений как NOT NULL.

...