我想将复杂的唯一键添加到现有的表中。Key包含4个字段(user_id、game_id、date、time)。但是表有不唯一的行。我知道我可以删除所有重复的日期,然后添加复杂的密钥。
可能存在另一种解决方案,而无需搜索所有重复数据。(如添加、唯一、忽略等)。
UPD我搜索过,如何删除重复的mysql行-我认为这是一个很好的解决方案。Remove duplicates using only a MySQL query?
发布于 2013-03-07 03:17:12
你可以按照yAnTar的建议去做
ALTER TABLE TABLE_NAME ADD Id INT AUTO_INCREMENT PRIMARY KEY或
您可以添加约束
ALTER TABLE TABLE_NAME ADD CONSTRAINT constr_ID UNIQUE (user_id, game_id, date, time)但我认为,为了不丢失现有数据,您可以添加一个标识列,然后创建一个组合键。
发布于 2016-10-04 18:19:37
正确的语法应该是- ALTER TABLE Table_Name ADD UNIQUE (column_name)
示例
ALTER TABLE 0_value_addition_setup ADD UNIQUE (`value_code`)发布于 2013-12-31 21:24:07
我不得不解决一个类似的问题。我从MS Access继承了一个很大的源表,表中有近15000条记录没有主键,我必须对主键进行规范化并使其与CakePHP兼容。CakePHP的一个约定是,每个表都有一个主键,它是第一列,它被称为“id”。在MySQL 5.5下,下面这句简单的语句帮我解决了这个问题:
ALTER TABLE `database_name`.`table_name`
ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);这在现有数据("FIRST“关键字)前面添加了一个整型的新列'id‘。AUTO_INCREMENT关键字从1开始递增id。现在,每个数据集都有一个唯一的数字id。(在没有AUTO_INCREMENT语句的情况下,所有行都用id =0填充)。
https://stackoverflow.com/questions/15255304
复制相似问题