【问题标题】:MySQL Query not working, how to manually do in phpMyAdminMySQL 查询不起作用,如何在 phpMyAdmin 中手动执行
【发布时间】:2014-09-01 04:49:33
【问题描述】:

我已经升级了一个magento软件,但是遇到了sql错误:

ALTER TABLE `poll` MODIFY COLUMN `store_id` smallint UNSIGNED NOT NULL default '0' COMMENT 'Store id'

这是:

SQLSTATE[HY000]: General error: 1025 Error on rename of './seedpant_dev/#sql-266d_25a3' to './seedpant_dev/poll' (errno: 150)

我实际上已经拥有了 100 个这样的索引,并且一直在处理和解析索引,但是这个是为了修改表,但是在 phpmyadmin 中,我无法弄清楚 sql 上面的内容是什么,并在 phpmyadmin 中复制手动编辑 - 截图如下:

谁能解释一下?真的卡住了,可能还有 100 多个我需要做的事情

提前致谢

詹姆斯

【问题讨论】:

  • stackoverflow.com/questions/16227199/mysql-errno-150 似乎暗示您不能在 ALTER 语句上使用 default 作为外键。但是,这仅处理 ON DELETE 子句,默认为操作,因此它可能完全不相关。该错误肯定与约束有关。你能检查一下列上有什么约束吗?
  • store_id 在其他表中是否被引用为外来语?
  • 当我用谷歌搜索那个错误号时,我得到了几页的 StackOverflow 结果,就像这样:stackoverflow.com/questions/5948704/…
  • 我猜您需要在更改列之前将外键放在 store_id 上。然后重新附加它。默认 0 对于 id 引用非常奇怪,默认 NULL 或完全摆脱默认值要好得多。如果该列有任何现有的 NULL 值,它可能会尝试将它们转换为 0,这可能会破坏外键。
  • 尝试了所有这些,似乎没有任何效果

标签: mysql sql phpmyadmin


【解决方案1】:

最终只是删除了运行该脚本的 PHP 升级脚本中的部分,并遇到了下一个我都很好处理的错误,所以它起作用了,我知道不是最好的事情,但没有使用民意调查,所以不是这样担心。感谢大家的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多