MySQL外键在定以后,如果我们不再需要这个外键,可以进行删除操作,下面就为您介绍MySQL删除外键定义的方法,供您参考。
不知道大家有没有发现,在定义外键的时候articles.member_id外键比articles.category_id子句多了一个CONSTRAINT fk_member ? 这个fk_member就是用来实现MySQL删除外键用的,如下所示:
mysql>ALTERTABLEarticlesDROPFOREIGNKEYfk_member; QueryOK,1rowaffected(0.25sec) Records:1Duplicates:0Warnings:0
这样articles.member_id外键定义就被删除了,但是如果定义时没有指定CONSTRAINT fk_symbol (即外键符号)时该怎么实现MySQL删除外键呢?别急,没有指定时,MySQL会自己创建一个,可以通过以下命令查看:
mysql>SHOWCREATETABLEarticles; +———-+————————————+ |Table|CreateTable| +———-+————————————+ |articles|CREATETABLE`articles`( `article_id`int(11)unsignedNOTNULLauto_increment, `category_id`tinyint(3)unsignedNOTNULL, `member_id`int(11)unsignedNOTNULL, `title`varchar(255)NOTNULL, PRIMARYKEY(`article_id`), KEY`category_id`(`category_id`), KEY`member_id`(`member_id`), CONSTRAINT`articles_ibfk_1`FOREIGNKEY(`category_id`)REFERENCES`categories`(`id`) )ENGINE=InnoDBDEFAULTCHARSET=latin1| +———-+————————————+ 1rowinset(0.01sec)
可以看出articles.category_id的外键符号为articles_ibfk_1,因为就可以执行以下命令实现MySQL删除外键定义:
mysql>ALTERTABLEarticlesDROPFOREIGNKEYarticles_ibfk_1; QueryOK,1rowaffected(0.66sec) Records:1Duplicates:0Warnings:0
【编辑推荐】
MySQL外键的相关语法
取得MySQL表信息的语句
mysql UPDATE语句的使用方法
mysql插入Clob字段的实例
常见MySql字段的默认长度