我已经创建了三个表
创建表employee1 (eid,ename (25),email varchar(15));
创建表accounts1 (eid,accno,atype varchar(2),bal int);
创建表trans1(cid int,accno int,atype varchar(2),accno int,bal int);
使用命令我添加了主键和外键
更改表employee1添加主键(Eid);
alter accounts1添加外键(Eid)引用employee1(eid);
alter accounts1添加主键(accno,atype);
alter trans1添加外键(accno,atype)引用accounts1(accno,atype);
现在我的问题是,我试图删除所有表的所有主键和外键,这会给我带来错误。
最初,我尝试删除主键。然后,在参考下面的链接显示,外键必须首先删除,我试着这样做,但我仍然得到错误。MySQL5.5删除主键
错误:
mysql>修改表employee1删除约束;
错误1064 (42000):您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在t行1附近使用“约束eid”。
mysql>修改表accounts1删除主键;
错误1025 (HY000):将‘.jlcindia#sql-B20_ 1’重命名为'.\jlcindia\accounts 1‘(errno: 150)
mysql>修改表employee1删除主键;
错误1025 (HY000):将‘.jlcindia#sql-B20_ 1’重命名为'.\jlcindia\employee 1‘(errno: 150)
mysql>修改表trans1删除外键;
错误1005 (HY000):无法创建表‘jlcindia。#SQL-B20_1 (errno: 150) mysql>显示引擎innodb状态
注意:我的表中没有自动增量或任何类似的内容。
我检查了以下链接,但没有任何帮助。
发布于 2014-03-04 05:54:43
您需要按以下顺序删除约束(这与创建键的顺序相反):
trans1中的外键accounts1中的主键accounts1中的外键employee1中的主键小提琴
发布于 2014-03-04 05:42:07
我认为,您首先需要删除表的外键--表的外键、accounts1.Then的外键、accounts1.then的主键、表*employee1 1 *的主键。
如果按此顺序删除外键和主键,则可以根据需要删除所有约束。
发布于 2016-05-09 10:20:38
首先,您需要找到与主键和外键相关的约束名。然后,您需要在删除键时使用这些约束名称。
select *
from
information_schema.key_column_usage
where
table_name = 'my_table'从上面的查询中,您将能够找到约束名称。
现在使用下面的语法删除键。
ALTER TABLE tablename DROP CONSTRAINT constraint name https://stackoverflow.com/questions/22162595
复制相似问题