mySQL中删除unique key的语法 (删除某个字段的唯一性)

mySQL中删除unique key的语法

CREATE TABLE `good_booked` (
  `auto_id` int(10) NOT NULL auto_increment,
  `good_id` int(11) default NULL,
  `chemist_id` int(11) default NULL,
  PRIMARY KEY  (`auto_id`),
  UNIQUE KEY `good_id` (`good_id`,`chemist_id`),
  KEY `current_state` (`current_state`),
  KEY `send_time` (`send_time`)
)

想删除某个表中某个字段的unique key:

ALTER TABLE good_booked DROP INDEX good_id;

原帖:http://wystec.blog.163.com/blog/static/29614447200910203498200/

时间: 2024-10-11 17:21:41

mySQL中删除unique key的语法 (删除某个字段的唯一性)的相关文章

[MySQL Tips]:如何删除unique key约束

[场景]: 假设最初创建了一个表bank,在street属性上添加了unique约束. create table branch( branch_name char(30) not null primary key, city varchar(20), street varchar(20) unique ); 表结构如下: [问题] 后来发现在同一个street上可以出现多个支行,也就是说street不应该是unique的.此时怎样删除unique约束呢? [方法] alter table bra

[原创]MYSQL中利用外键实现级联删除和更新

MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表

MySQL中ON DUPLICATE KEY UPDATE使用

今天做推断插入用到了MySQL中ON DUPLICATE KEY UPDATE,如今Mark下面! 假设你想做到数据库中没有数据的话插入数据.有数据的话更新数据,那么你能够选择ON DUPLICATE KEY UPDATE. ON DUPLICATE KEY UPDATE可以在UNIQUE索引或PRIMARY KEY存在的情况下对旧行运行UPDATE操作. 比如:假设列a被定义为UNIQUE,而且包括值1,则下面两个语句具有同样的效果: INSERT INTO table (a,b,c) VAL

MySQL中利用外键实现级联删除、更新

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被S

mysql中的unique

distinct可以把重复的行去掉,查询时候用select distinct * from ...; unique在MySQL中是完整性约束里的一种,如果某列的值需要是唯一的那么就添加UNIQUE约束. 创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复.唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值.如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引. * truncate 和 delet

在 mysql 中利用 Duplicate key, 一句话实现存在的更新不存在插入功能

mysql 中可以用一个sql命令实现在插入时,如果发现唯一索引重复的记录则自动改为更新语句, 语句如下: INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('tyson','Cleartext-Password',':=','123') on duplicate key update value='123'; 注意,radcheck 表中 username 和 attribute 列是个组合的唯一索引. alter table

MySQL中index和key的关系

KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY when given in a column definition. This was implemented for compatibility with other database systems. 简言之,在MySQL中,INDEX和KEY的概念是一样的.PRIMARY KEY要求NOT

mysql中delete from in子查询删除失败

遇到一个情况,想通过表1的id找到表2,删除表2中barcode关联的库存数据,然后一直不能失败,如下: delete from 库存表 where BARCODE in( select BARCODE from 表1 where fmoveid= (select id from 表2 where PCID='SMX2014082604494930') ); 解决方式,加别名 delete from 库存表 where BARCODE in( select aa.BARCODE from(   

MySql中的FOREIGN KEY

在mysql数据库编程中经常会出现几个表中存在某些相关属性,通常情况下我们可以通过使用外键约束来解决这个问题.但在删除表和修改表的结构时会出现一些小问题. 在删除表的时候Cannot delete or update a parent row: a foreign key constraint fails (...) 这是因为外键约束导致不能对表直接的进行相关操作. 取消外键约束  SET FOREIGN_KEY_CHECKS=0; 设置外键约束 SET FOREIGN_KEY_CKECKS=1