gpt4 book ai didi

php - Laravel 4 无法删除外键

转载 作者:可可西里 更新时间:2023-10-31 23:54:48 24 4
gpt4 key购买 nike

我试图在表上删除外键,但我收到了这条消息:

[Illuminate\Database\QueryException]                                         
SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'user_id
'; check that column/key exists (SQL: alter table `posts` drop foreign key
user_id)

我正在使用迁移来执行此操作:

Schema::table('posts', function($table) {
$table->dropForeign('user_id');
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');
});

我确信 'user_id' 存在于 'posts' 表中:

 Field      | Type             | Null | Key | Default             | Extra          |
+------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(10) unsigned | NO | MUL | NULL | |

我该如何解决这个问题?是错误还是什么?

--------------------
更新:
我发现原因可能是“您正在尝试删除另一个表正在使用的键。”
这是否意味着我应该先删除那些使用“posts”表的表?

最佳答案

创建外键时,除非您在第二个参数 ( see createIndexName method)) 中设置名称,否则名称将为 table_fields_foreign

因此,如果您没有指定名称,您的外键应该是 posts_user_id_foreign 而不是 user_id

关于php - Laravel 4 无法删除外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com