创建主键时出现语法错误

本文关键字:语法 错误 创建 | 更新日期: 2023-09-27 18:17:03

我正在使用c#创建VF表。Create Table语句类似于

{CREATE TABLE NMMAIN (
   NAMETYPE Character(4),
   NAME_ID Numeric(11) AUTOINCREMENT,
   RACE Character(2),
   RELIGION Character(10),
   REPORTAREA Character(8),
   RESTRICTNM Numeric(1),
   RES_STATUS Character(1),
   SEX Character(1),
   SKINTONE Character(6),
   CONSTRAINT primKey PRIMARY KEY(NAME_ID)
  )}

这会在执行查询时抛出"语法错误"。如果我不添加约束,它确实工作得很好。

创建主键时出现语法错误

您使用了错误的语法。看看Visual Foxpro的CREATE TABLE语法,正确的语法是:

CREATE TABLE NMMAIN (
   ...,
   NAME_ID Numeric(11) AUTOINC PRIMARY KEY,
   ...
)

或:

CREATE TABLE NMMAIN (
   ...,
   NAME_ID Numeric(11) AUTOINC,
   ...,
   PRIMARY KEY NAME_ID TAG primKey
)

注意我使用AUTOINC而不是AUTOINCREMENT,因为我链接到的参考文献不显示AUTOINCREMENT

你的最后一个问题,我认为,是只有Integer类型可以使用AUTOINC,而不是Numeric。

CREATE TABLE子句定义如下:

CREATE TABLE | DBF Table_Name 
 [CODEPAGE = nCodePage]
 (FieldName1 FieldType [( nFieldWidth [, nPrecision] )] [NULL | NOT NULL] 
 [AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] 
 [, FieldName2 ... ] [ ... ] )

和一个例子:

CREATE TABLE "D:'Data'customer.dbf" (id I AUTOINC NEXTVALUE 1 STEP 1, name C(40), payment F(5,2))