标签: mysql-error-1025

如何在SQLAlchemy中删除外键约束?

我正在使用SQLAlchemy Migrate来跟踪数据库更改,我遇到了删除外键的问题.我有两个表,t_new是一个新表,t_exists是一个现有的表.我需要添加t_new,然后向t_exists添加一个外键.然后我需要能够扭转操作(这是我遇到麻烦的地方).

t_new = sa.Table("new", meta.metadata,
    sa.Column("new_id", sa.types.Integer, primary_key=True)
)
t_exists = sa.Table("exists", meta.metadata,
    sa.Column("exists_id", sa.types.Integer, primary_key=True),
    sa.Column(
        "new_id", 
        sa.types.Integer,
        sa.ForeignKey("new.new_id", onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False
    )
)
Run Code Online (Sandbox Code Playgroud)

这很好用:

t_new.create()
t_exists.c.new_id.create()
Run Code Online (Sandbox Code Playgroud)

但这不是:

t_exists.c.new_id.drop()
t_new.drop()
Run Code Online (Sandbox Code Playgroud)

尝试删除外键列会出现错误:1025,"将'.\ my_db_name \#sql-1b0_2e6'重命名为'.\ my_db_name\exists'(错误号:150)"时出错"

如果我使用原始SQL执行此操作,我可以手动删除外键然后删除列,但我无法弄清楚如何使用SQLAlchemy删除外键?如何删除外键,然后删除列?

python mysql sqlalchemy foreign-keys mysql-error-1025

7
推荐指数
1
解决办法
7482
查看次数

使用外键删除列

在我的mysql数据库上使用inno_db引擎,

我有一张带外键的桌子.我想删除列(当然还有外键和相关索引 - 我不需要整列!)

现在,简单地删除它会产生错误:一般错误:1025错误将'.\ road_dmy#sql-19d8_2be'重命名为'.\ road_dmy\contact'(错误号:150)

听起来这是一个众所周知的问题. http://bugs.mysql.com/bug.php?id=15317

但无论如何,我应该怎么做才能放弃这个专栏?我非常确定没有人会使用这个DB

(顺便说一下,我怎么知道上面神秘错误信息的真实细节?)

mysql mysql-error-1025 sql-drop

5
推荐指数
1
解决办法
4682
查看次数

MySQL#1025错误

运行此查询时出现#1025错误.

SQL查询:

ALTER TABLE  `routes` CHANGE  `end_loc`  `end_loc` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1025 - Error on rename of './ridestr/#sql-1f44_26eeb' to './ridestr/routes' (errno: 150) 
Run Code Online (Sandbox Code Playgroud)

这很有趣,因为我在PHP MyAdmin中设置了这个查询...我不知道为什么我得到一个外键错误...我只是想尝试从int更改为varchar

有人可以帮忙吗?

mysql mysql-error-1025

1
推荐指数
1
解决办法
5794
查看次数

奇怪的mysql错误

你好我有一个mysql数据库,里面有一个地址表.

这是它的创建方式:

CREATE TABLE IF NOT EXISTS `addresses` (
  `adr_id` int(11) NOT NULL AUTO_INCREMENT,
  `per_id` int(11) NOT NULL,
  `adr_street` varchar(50) NOT NULL,
  `adr_houseno` int(11) DEFAULT NULL,
  `adr_housenoadd` varchar(10) DEFAULT NULL,
  `adr_postcode` varchar(25) NOT NULL,
  `adr_city` varchar(20) NOT NULL,
  `adr_type` varchar(45) DEFAULT NULL,
  `cnt_id` int(11) NOT NULL,
  `adr_date` date DEFAULT NULL,
  `sys-mut-dt` timestamp NULL DEFAULT NULL,
  `sys-mut-user` varchar(20) DEFAULT NULL,
  `sys-mut-id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`adr_id`),
  KEY `per_id` (`per_id`),
  KEY `cnt_id` (`cnt_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1025

0
推荐指数
1
解决办法
242
查看次数