muszę dwa klucze złożone i tylko trzeba być AUTO INCREMENT
co starałem dotąd:klucze Composite laravel schematu budowniczy
// 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');
});
Żaden działa. Komunikat o błędzie:
[Exception]
kuchnia
SQLSTATE[42000]: Syntax error or access violation: 1068 Multiple primary ke
y defined (SQL: alter tableadd primary key kitchen_restaurant_id
restaurant_id
_primary()) (Bindings: array (
))
Rozwiązanie bez Schema
budowniczego: po pierwsze, muszę dodać dwa klucze złożone, a potem muszę zrobić jedną z AUTO INCREMENT
ale myślę Schema
budowniczy nie może Zrób to.
Uwaga: mogę to zrobić z SQL, to znaczy nie ma problemu z MySQL
Wszelkie sugestie?
Podsumowanie:
Co potrzebne jest;
http://oi39.tinypic.com/es91ft.jpg
z Schema
budowniczy
, ale nie mogę zrobić '' AUTO_INCREMENT' id' ponownie, może JA ? –
'$ table-> increments ('id');' sprawi, że będzie to autoinc + klucz podstawowy, ale '$ table-> dropPrimary ('kitchen_id_primary');' usunie tylko klucz podstawowy. Tak więc pole pozostanie autoinc. Następnie '$ table-> primary (array ('id', 'restaurant_id'));' ponownie utworzy złożony klucz podstawowy. –
nie może spaść podstawową jeśli auto inc jest ustawiony – silkAdmin