我需要两个复合主键,只有一个应该是AUTO INCREMENT
到目前为止我尝试过的:
// first try
Schema::create("kitchen", function($table) {
$table->increments('id');
$table->integer('restaurant_id');
$table->primary(array('id', 'restaurant_id'));
$table->string('name');
});
// second try
Schema::create("kitchen", function($table) {
$table->increments('id');
$table->integer('restaurant_id');
$table->primary('restaurant_id');
$table->string('name');
});
没有办法。错误信息:
[Exception]
SQLSTATE[42000]: Syntax error or access violation: 1068 Multiple primary ke
y defined (SQL: alter table
厨房add primary key kitchen_restaurant_id
_primary(
restaurant_id )) (Bindings: array (
))
没有
Schema
构建器的解决方案:首先,我需要添加两个复合主键,然后需要制作一个AUTO INCREMENT
,但我认为Schema
构建器无法做到这一点。注意:我可以使用 SQL这样做,我的意思是MySQL没问题
有什么建议?
摘要:
我需要的是
http://oi39.tinypic.com/es91ft.jpg
使用
Schema
构建器 最佳答案
您可以在未准备好的方法的帮助下完成此操作:
Schema::create("kitchen", function($table) {
$table->increments('id');
$table->integer('restaurant_id');
$table->string('name');
});
DB::unprepared('ALTER TABLE `kitchen` DROP PRIMARY KEY, ADD PRIMARY KEY ( `id` , `restaurant_id` )');
经过测试,可以正常工作!
我知道已经晚了,您可能已经继续前进,但是其他人可能会遇到这个问题:)
关于php - 组合键laravel模式构建器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17065112/