创建主键时出现语法错误
本文关键字:语法 错误 创建 | 更新日期: 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))