即使在声明SET FOREIGN KEYS CHECKS后,我也无法将我的id列的类型更改为整数。我收到错误
[照亮\数据库\ QueryException]
SQLSTATE [HY000]:常规错误:1025重命名时出错 ' ./ ABC /#SQL-45d_6d'到' ./ abc / oauth_clients' (错误: 150)(SQL:ALTER TABLE o auth_clients CHANGE id id int(10) AUTO_INCREMENT)
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddAppIdToOauthClients extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
/**
Schema::table('oauth_clients', function(Blueprint $table)
{
$table->string('app_id',100);
});
*/
DB::statement('SET FOREIGN_KEY_CHECKS = 0;');
DB::statement('ALTER TABLE oauth_clients CHANGE id id int(10) AUTO_INCREMENT');
DB::statement('SET FOREIGN_KEY_CHECKS = 1;');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
/**
Schema::table('oauth_clients', function(Blueprint $table)
{
$table->dropColumn('app_id');
});
*/
DB::statement('SET FOREIGN_KEY_CHECKS = 0;');
DB::statement('ALTER TABLE oauth_clients CHANGE id id varchat(55);');
DB::statement('SET FOREIGN_KEY_CHECKS = 1;');
}
1,1 Top
更新: 这是我的INNODB状态
上显示的错误------------------------最新外国关键错误 ------------------------ 151217 17:37:37表abc / oauth_client_endpoints的外键约束出错:没有索引 引用表,其中包含列作为第一列, 或者引用表中的数据类型与中的数据类型不匹配 表。约束:,CONSTRAINT " oauth_client_endpoints_client_id_foreign" FOREIGN KEY(" client_id") 参考文献" oauth_clients" (" id")ON UPETE CASCADE ON UPDATE CASCADE 表中外键中的索引是 " oauth_client_endpoints_client_id_redirect_uri_unique"看到 http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html 正确的外键定义。
答案 0 :(得分:0)
您的SQL语法错误。如果要修改需要使用的类型:
ALTER TABLE oauth_clients MODIFY COLUMN id INT(10) AUTO_INCREMENT;