我遇到了删除外键索引的问题,我总是得到相同的错误
ALTER TABLE `comments` DROP INDEX `id_user`
哪种输出
1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704'
to './postuj_cz1/comments' (errno: 150)
另一个表上的id_user是简单的主键索引。
我使用的是MySQL版本5.0.85
我对外键限制有疑问。因此,为了测试目的,我制作了两个这样简单的表。
mysql> EXPLAIN parent;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL
假设您有一个ticket表和一个status票证。其定义如下:
CREATE TABLE `priorities`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` INT NOT NULL,
constraint `priorities_id_primary` Primary key (`id`)
);
CREATE TABLE `tickets`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`subject` VARCHAR(255) NOT NULL,
我有一个包含客户编号、客户名称和项目编号的MySQL表。它比这个复杂一点,但我试着简化了一点,并删除了敏感数据。
当前表
Unique Customer Number | Customer Name | Item Number
10001 | Bob | 20001
10001 | Bob | 20002
10001 | Bob | 20003
10002 | Tim | 2000
我在mysql中创建了两个表,
客户
house表,其中houseID是我的客户表中的外键。
创建客户表( id int null主键auto_increment,名称varchar null,houseId int null,telephoneNo,int null,约束外键(houseId)在DELETE级联上引用name (Id));创建name表(id int主键auto_increment,houseNo int null,address varchar null);
但是,当我使用特定的houseId删除customer时,尽管我在customer表中添加了dele
我有一个带有calls列和外键约束的user_id表。因此,user_id与users表有关。
我进行了一个迁移,删除了列和外键约束。up方法工作得很好。但是,当涉及到down时,它会崩溃,因为我添加了一个user_id列,然后恢复了约束,但是列中的值与实际数据无关,因此我得到了150个MySQL错误。
我找到了一个对我没用的解决方案。解决方案是暂时禁用外键约束。下面是我的迁移文件:
使用照明\数据库\架构\蓝图;使用照明\数据库\移动\迁移;
class RemoveUseridFromCalls extends Migration {
/**
* Run the mig
我想删除表中的外键,但已进入此错误消息
mysql> alter table customers drop foreign key customerid;
ERROR 1025 (HY000): Error on rename of '.\products\customers' to '.\products\#sql2-7ec-a3' (errno: 152)
mysql>
在MySQL中,我有一种很好的方法来抑制键检查,我就是这样做的:
SET FOREIGN_KEY_CHECKS = 0;
在那之后,我可以轻易地放下任何一张桌子。我想,在Postgresql中,如果我运行的话,我也可以这样做:
SET CONSTRAINTS ALL DEFERRED;
但问题是,当我尝试删除一些表之后,我会得到一个错误列表,表示某个表依赖于另一个表blablabla。那么,我做错了什么,我该如何解决呢?谢谢!