SQL语法,创建表,优势数据库

时间:2011-11-02 20:26:59

标签: sql advantage-database-server

我必须在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
);

在建筑师中,这看起来似乎更为复杂 - 建议apreciated。

2 个答案:

答案 0 :(得分:1)

一些指示:

  • FLOAT最好映射到DOUBLE
  • 设置DEFAULT并指定主索引需要额外的EXECUTE sp_ModifyFieldProperty语句(请参阅Documentation
  • 我认为ADS中没有DESCRIPTION
  • IF NOT EXISTS可以用不同的方式解决,如果你有一个字典,你可以查询字典的system.tables内部表。如果不这样做,则可以使用TRY CREATE TABLE ... CATCH ALL END TRY
  • 忽略创建错误

如果您有任何具体问题,请在SO上创建一个新问题。

更新:

您也可以使用集成表设计器并将表代码转储到SQL,但这不会解决您的IF NOT EXISTS问题。

答案 1 :(得分:0)

你的外键在哪里?或者这是你唯一的一张桌子。外键在SQL中至关重要,没有它们,关系代数就无法工作。另外,我会使用更多约束作为NOT NULL。