我已经将一个字符串字段添加到我的休眠持久类中,然后重新启动了该应用程序。它启动了SchemaUpgrade,并导致了如下错误: 通用标签

该列已添加到数据库中。而且一切似乎都正常。除非出现这些错误,否则每次都会弹出该应用程序。

我该如何帮助它创建那些索引?数据库是MySQL,休眠版本是3.0。

有帮助吗?

解决方案

这听起来不像是休眠问题。如果尝试手动运行,将会看到同样的问题。通过查看MySQL手册,我看到“ errno:150”的意思是:

如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件,MySQL将返回错误号1005,并在错误消息中引用错误150。

http://dev.mysql。com / doc / refman / 5.5 / en / innodb-foreign-key-constraints.html

其他提示

还要确保被引用列和被引用列之间的TABLE_COLLATION相同...否则,您也会收到该错误。

对我来说,通过将所有表Engine更改为InnoDB可以解决此问题。

这是手动操作的方法:

https://stackoverflow.com/a/9492183/1988704

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top