数据库ACCESS2000;用连接.
datastr = CREATE TABLE 1101(name varchar(50), kahao varchar(50) primary key
references personinfo(kahao) on delete cascade,info varchar(50));
theApp.m_pConnection->Execute(datastr.AllocSysString(),NULL,adOptionUnspecified);
因为加上了"on delete cascade"而出现错误,去掉这个就可以成功建表.
请问这是为什么哦.
表personinfo中的字段kahao不是主键,是索引:有(无重复)
datastr = CREATE TABLE 1101(name varchar(50), kahao varchar(50) primary key
references personinfo(kahao) on delete cascade,info varchar(50));
theApp.m_pConnection->Execute(datastr.AllocSysString(),NULL,adOptionUnspecified);
因为加上了"on delete cascade"而出现错误,去掉这个就可以成功建表.
请问这是为什么哦.
表personinfo中的字段kahao不是主键,是索引:有(无重复)
"CONSTRAINT 子句语法错误",点确定后,
"delete"得焦, 点帮助帮助面板是空的.
是不是access不支持这个啊.
但我手动建立关系,可以啊,
限制和索引相似,虽然限制也能被用于建立和另一个表的关联。用 ALTER TABLE 和 CREATE TABLE 语句中的 CONSTRAINT 子句来建立或删除条件.CONSTRAINT 子句可分为两种类型:第一种是在单一字段上创建条件;第二种是在一个以上的字段上创建条件。
--------------------------------------------------------------------------------注意 Microsoft Jet 数据库引擎并不支持使用 CONSTRAINT ,或任何非 Microsoft JET 数据库的数据定义语言 (DDL) 语句。而使用 DAO创建方法。
--------------------------------------------------------------------------------语法
单一字段条件: CONSTRAINT名 {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES 外部表 [(外部字段1,外部字段2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}多重字段条件: CONSTRAINT名
CONSTRAINT name
{PRIMARY KEY (primary1[, primary2 [, ...]])|
|
UNIQUE (unique1[, unique2 [, ...]])|
|
NOT NULL (notnull1[, notnull2 [, ...]])|
FOREIGN KEY [NO INDEX] (ref1 [, ref2 [, ...]])REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]}
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]} 子句可分为以下几个部分:部分 说明
name 欲创建的条件的名称。
primary1, primary2 被指定为主键.的字段名。
unique1, unique2 欲设计成为唯一键的一个或多个字段之名称。
notnull1, notnull2 被限制为非 Null 值的字段的名称。
ref1, ref2 涉及到另一个表中的字段的外部键字段名
foreigntable 包含由外部字段注明的字段的外部表名。
foreignfield1, foreignfield2 由 ref1、ref2 指定的 foreigntable 中的字段的名称。如果引用的字段是 foreigntable 的主键,则可省略此子句。
说明
紧接在字段的数据类型规格之后,在 ALTER TABLE 或 CREATE TABLE 语句的字段定义子句中,使用单一字段条件之语法。只要在 ALTER TABLE 或 CREATE TABLE 语句的字段定义子句之外使用保留字 CONSTRAINT,就可以使用多重字段条件之语法。使用 CONSTRAINT,可以将字段设计为如下的条件类型之一: 可以使用 UNIQUE 保留字将字段设计为唯一键。这意味着在同一个表中没有两个记录的这个字段的值是相同的。可以强制任何字段或字段列表为唯一的。如果多重字段条件被设计成唯一键,在索引之中的所有字段的组合值必须也是唯一的,即使在这些字段之中有两个或两个以上的记录有相同的值。
可以用 PRIMARY KEY 保留字,将表中的字段或一组字段设计为主键。在主键之中所有的值必须是唯一的,且不可为 Null,一个表只能有一个主键。
--------------------------------------------------------------------------------注意 在一个已经设有主键的表中,不能再设置 PRIMARY KEY 条件,否则会发生错误。
要实现的话,得用DAO连接数据库了.
那如果硬是要实现此功能,只能在程序中对每一个表进行更新也删除了.