创建主键时出现语法错误

时间:2014-08-07 16:21:59

标签: c# foxpro visual-foxpro

我正在使用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)
  )}

这会在执行查询时抛出“语法错误”。如果我不添加约束,它确实可以正常工作。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

您使用的语法错误。查看CREATE TABLE syntax for Visual Foxpro正确的语法是:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是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))

取自here