优势数据库9.1,用PK建表

Exp*_* be 3 advantage-database-server

create table WEBLOG
(
ORDERNO CHAR(9) NOT NULL,
USERNAME CHAR(50) NOT NULL,
ACTION CHAR(255) NOT NULL,
NOTE MEMO,
UPDATEDATE DATE NOT NULL,
UPDATETIME TIME NOT NULL,
IP CHAR(15),
PK CHAR(36) NOT NULL,
PRIMARY KEY(PK)
)
Run Code Online (Sandbox Code Playgroud)

上面的查询不起作用,错误消息说,

ERROR IN SCRIPT: poQuery: Error 7200:  AQE Error:  State = HY000;   NativeError = 2215;  [iAnywhere Solutions][Advantage SQL Engine]Invalid create options:  
NOCPTRANS and nullable column type options are only valid with ADS_VFP table type. -- Location of error in the SQL statement is: 23 (line: 3 column: 1)
Run Code Online (Sandbox Code Playgroud)

该查询有什么问题?

我的 Advantage 数据库版本是 9.1。

有谁知道请给我建议。

谢谢!

Ken*_*ite 5

此错误是由使用 引起的NOT NULL,该错误仅在 ADS_VFP (Visual FoxPro) 表类型上受支持。

处理 Advantage 的常用方法NOT NULL是通过 ADS 数据字典建立连接,然后使用CONSTRAINT NOT NULL语法。但是,它无法在free table(不在数据字典中的表)连接上工作 - 尝试将其更改为CONSTRAINT NOT NULL在空闲表上会导致错误The field-level or record-level constraint is invalid. Field level constraints are not supported on free table.

这在ADS 9.1 帮助中记录,特别是在CREATE TABLE下:

vfp-选项 ::= NULL | 不为空| 诺普运输公司

这些选项适用于 Visual FoxPro 表 (ADS_VFP),并且可与自由表和数据字典表一起使用。NULL(和 NOT NULL)选项指示该列是否能够物理保存 NULL 值。这与 NOT NULL 约束不同。如果创建的 Visual FoxPro 列没有使用 NULL 选项,则在尝试在该列中存储 NULL 时将会生成错误。NOCPTRANS 选项适用于 Visual FoxPro 字符和备注字段类型。如果提供此选项,则不会跨代码页转换数据(ANSI/OEM 转换)。

顺便说一句,当您在 中遇到语法错误ARC32,并且您的 SQL 结构与您的 SQL 结构相似时,光标位于导致错误的行上。在本例中,错误是由第一个列定义 ( ORDERNO CHAR(9) NOT NULL) 引起的。更改该单列定义以删除会使NOT NULL错误发生在下一行。