关于三张表间有外键关系的删除数据问题

duck530 2011-12-07 10:41:05
我有三张表是Access数据库,如下:
用户表(SM_Users):UserID,UserName...
用户权限表(SM_UserFuncs):UserID,FuncID...
功能模块表(SM_Funcs):FuncID,FuncName...
SM_Users.UserID与SM_UserFuncs.UserID主表从表关系
SM_Funcs.FuncID与SM_UserFuncs.FuncID主表从表关系

用途就是给用户授权系统内的各个模块的权限

我现在想删除某个用户,所以我就先删除SM_userFuncs表内的某用户的记录,再删SM_Users表的记录。可是无论如何都不行
DELETE FROM SM_UserFuncs WHERE UserID=@UserID

DELETE FROM SM_Users WHERE UserID=@UserID
请高手解决
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-12-08
  • 打赏
  • 举报
回复
[Quote]我现在想删除某个用户,所以我就先删除SM_userFuncs表内的某用户的记录,再删SM_Users表的记录。可是无论如何都不行
DELETE FROM SM_UserFuncs WHERE UserID=@UserID[/Quote]这个应该可以啊。你的错误信息是什么?
wwwwb 2011-12-08
  • 打赏
  • 举报
回复
是否是级联删除?提示什么
duck530 2011-12-08
  • 打赏
  • 举报
回复
错误信息:
语法错误(操作符丢失)在查询表达式中
我执行的SQL:
DELETE FROM SM_UserFuncs WHERE UserID="ly"
DELETE FROM SM_Users WHERE UserID="ly"
mysql数据库设计 数据库设计 约束 约束 * 概念: 对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 1. 注意: 1. 含义:⾮空且唯⼀ 2. ⼀张表只能有⼀个字段为主键 3. 主键就是表中记录的唯⼀标识 2. 在创建表时,添加主键约束 create table stu( id int primary key,-- 给id添加主键约束 name varchar(20) ); 3. 删除主键 ALTER TABLE stu DROP PRIMARY KEY; 4. 创建完表后,添加主键 ALTER TABLE stu MODIFY id INT PRIMARY KEY; 5. ⾃动增长: 1. 概念:如果某⼀列是数值类型的,使⽤ auto_increment 可以来完成值得⾃动增长 2. 在创建表时,添加主键约束,并且完成主键⾃增长 create table stu( id int primary key auto_increment,-- 给id添加主键约束 name varchar(20) ); 3. 删除⾃动增长 ALTER TABLE stu MODIFY id INT; 4. 添加⾃动增长 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; 2. ⾮空约束:not null 1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL ); 2. 创建表完后,添加⾮空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; 3. 删除name的⾮空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20); 3. 唯⼀约束:unique 1. 创建表时,添加唯⼀约束 CREATE TABLE stu( id INT, phone_number VARCHAR(20) UNIQUE -- 添加了唯⼀约束 ); * 注意mysql中,唯⼀约束限定的列的值可以有多个null 2. 删除唯⼀约束 ALTER TABLE stu DROP INDEX phone_number; 3. 在创建表后,添加唯⼀约束 ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE; 4. 外键约束:foreign key 1. 在创建表时,可以添加外键 * 语法: create table 表名( .... 外键列 constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) ); 2. 删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 3. 创建表之后,添加外键 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); 4. 级联操作 1. 添加级联操作 语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ; 2. 分类: 1. 级联更新:ON UPDATE CASCADE 2. 级联删除:ON DELETE CASCADE 数据库的设计 数据库的设计 1. 多表之间的关系 1. 分类: 1. ⼀对⼀(了解): 2. ⼀对多(多对⼀): 3. 多对多: 2. 实现关系: 1. ⼀对多(多对⼀): * 实现⽅式:在多的⼀⽅建⽴外键,指向⼀的⼀⽅的主键。 2. 多对多: * 实现⽅式:多对多关系实现需要借助第三张中间表。中间表⾄少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键 3. ⼀对⼀(了解): * 实现⽅式:⼀对⼀关系实现,可以在任意⼀⽅添加唯⼀外键指向另⼀⽅的主键。 2. 数据库设计的范式 * 概念:设计数据库时,需要遵循的⼀些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求 设计关系数据库时,遵从不同的规范要求,设计出合理的关系数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越⾼的范式数据库冗余越⼩。 ⽬前关系数据库有六种范式:第⼀范式(1NF)、第⼆范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,⼜称完美范式)。 * 分类: 1. 第⼀范式(1NF):每⼀列都是不可分割的

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧