Php MySQL:修复完全重复的行
我有表标记,在创建时忘记将id列设置为主键 现在我面临一个重复的关键问题 标签表: 如何删除重复项并将id保留和设置为主键 预期结果:新的必需标签表Php MySQL:修复完全重复的行,php,mysql,Php,Mysql,我有表标记,在创建时忘记将id列设置为主键 现在我面临一个重复的关键问题 标签表: 如何删除重复项并将id保留和设置为主键 预期结果:新的必需标签表 我认为最简单的方法是使用数据创建一个临时表,然后重新加载数据: create temporary table tags_temp as select distinct id, text from tags; truncate table tags; alter table tags add primary key (id);
我认为最简单的方法是使用数据创建一个临时表,然后重新加载数据:
create temporary table tags_temp as
select distinct id, text
from tags;
truncate table tags;
alter table tags add primary key (id);
insert into tags(id, text)
select id, temp
from tags_temp;
我认为最简单的方法是使用数据创建一个临时表,然后重新加载数据:
create temporary table tags_temp as
select distinct id, text
from tags;
truncate table tags;
alter table tags add primary key (id);
insert into tags(id, text)
select id, temp
from tags_temp;
我要做的是创建一个新表,添加键插入旧表中的数据,然后删除标记并重命名temp
我要做的是创建一个新表,添加键插入旧表中的数据,然后删除标记并重命名temp 首先,我创建了您的表并将数据插入: 我只备份不同的条目: 我不再需要原始表,因此我将其从数据库中删除: 我重命名以前的备份表: 现在是向表中添加主键约束的时候了: 现在,让我们测试一下我们所做的是否正确。首先,让我们显示数据:
create temporary table tags_temp as
select distinct id, text
from tags;
truncate table tags;
alter table tags add primary key (id);
insert into tags(id, text)
select id, temp
from tags_temp;
让我们尝试添加id为4的行:
结论:我们所做的是正确的。首先,我创建了您的表,并将数据插入:
我只备份不同的条目:
我不再需要原始表,因此我将其从数据库中删除:
我重命名以前的备份表:
现在是向表中添加主键约束的时候了:
现在,让我们测试一下我们所做的是否正确。首先,让我们显示数据:
create temporary table tags_temp as
select distinct id, text
from tags;
truncate table tags;
alter table tags add primary key (id);
insert into tags(id, text)
select id, temp
from tags_temp;
让我们尝试添加id为4的行:
结论:我们所做的是正确的。我想删除重复,而不是选择我想删除重复,而不是选择我收到此错误:1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第行“添加主键id”附近要使用的正确语法1@mwafi . . . 它需要表名,oops。我收到这个错误:1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第行“添加主键id”附近要使用的正确语法1@mwafi . . . 它需要表名,oops。
mysql> select * from tags;
+----+-------+
| id | text |
+----+-------+
| 1 | man |
| 2 | ball |
| 2 | ball |
| 2 | ball |
| 3 | love |
| 3 | love |
| 4 | heart |
| 4 | heart |
+----+-------+
8 rows in set (0.00 sec)
mysql> create table T as select distinct * from tags;
Query OK, 4 rows affected (0.27 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> drop table tags;
Query OK, 0 rows affected (0.12 sec)
mysql> rename table T to tags;
Query OK, 0 rows affected (0.08 sec)
mysql> alter table tags add primary key(id);
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select * from tags;
+----+-------+
| id | text |
+----+-------+
| 1 | man |
| 2 | ball |
| 3 | love |
| 4 | heart |
+----+-------+
4 rows in set (0.00 sec)
mysql> insert into tags values(4,'proof');
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'