access中,怎样删除重复记录然后设置主键
做计算机二级的时候遇到的,设置主键怎么都设置不了,哪位高手说明一下怎么弄,我是零基础,最好能说明白点哈,谢谢了...
做计算机二级的时候遇到的,设置主键怎么都设置不了,哪位高手说明一下怎么弄,我是零基础,最好能说明白点哈,谢谢了
展开
2个回答
展开全部
需要添加主键的字段或字段组合下面含有重复的记录,所以不能添加主键。解决办法是删除有重复的记录后再添加主键。
例如先运行下列SQL查询语句删除某字段(假设字段名为col1)有重复的记录:
DELETE *
FROM tableName AS a
WHERE exists
(
select 1 from tablename b where
a.col1=b.col1 group by b.col1 having count(b.col1)>1
);
跟着运行下列表定义SQL语句就可以将该字段设置主键:
alter table tableName add constraint c_Pk primary key (col1);
当然删除重复记录后,也可以手动为字段(col1)设置主键 ——于表设计视图,选择字段“COL1”,然后点击工具栏上的那个“钥匙”图标即可。
例如先运行下列SQL查询语句删除某字段(假设字段名为col1)有重复的记录:
DELETE *
FROM tableName AS a
WHERE exists
(
select 1 from tablename b where
a.col1=b.col1 group by b.col1 having count(b.col1)>1
);
跟着运行下列表定义SQL语句就可以将该字段设置主键:
alter table tableName add constraint c_Pk primary key (col1);
当然删除重复记录后,也可以手动为字段(col1)设置主键 ——于表设计视图,选择字段“COL1”,然后点击工具栏上的那个“钥匙”图标即可。
追问
还是好复杂啊,能再清楚点吗?呜呜呜
追答
更简单的办法,打开数据表,将表里所有的数据删除掉,跟着转换到表设计视图,选择你要设置主键的字段,再点击工具栏上的“钥匙”图标,保存即可。
用SQL语句删除有重复的数据:
DELETE *
FROM 表名 AS a
WHERE exists
(
select 1 from 表名 b where
a.要添加主键的字段名=b.要添加主键的字段名 group by b.要添加主键的字段名 having count(b.要添加主键的字段名)>1
);
复制粘贴上列代码(套上实际表名和字段名)到SQL查询设计视图,然后保存为一个查询并为之取名“删除有重复的记录”,跟着双击查询“删除有重复的记录”就可以删除对应表中有重复的记录了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询