Laravel Eloquent truncate – ограничение внешнего ключаPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel Eloquent truncate – ограничение внешнего ключа

Сообщение Anonymous »

У меня возникли проблемы с удалением данных с помощью Laravel 5. Кажется, я застрял в «ограничении внешнего ключа», но не понимаю почему.
В моем текущем состоянии модель базы данных, у меня есть таблица точек данных, которая имеет внешний ключ к таблице датчиков (datapoints.sensors_id -> Sensor.id).
Код, который я пытаюсь:

Код: Выделить всё

Route::get('/truncateData', function() {
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
return 'Done...';
});
Результат:

SQLSTATE[42000]: Синтаксическая ошибка или нарушение прав доступа: 1701 Невозможно
обрезать таблица, на которую есть ссылка в ограничении внешнего ключа
(

Код: Выделить всё

alerting.datapoints
, CONSTRAINT datapoints_sensor_id_foreign
FOREIGN KEY (

Код: Выделить всё

sensor_id
) ССЫЛКИ оповещения.

Код: Выделить всё

sensors (id
))
(SQL: усечение датчиков)

Я бы понял это ограничение, если бы порядок был обратным (сначала удаление датчиков), но когда точки данных пусты, с удалением датчиков проблем быть не должно. Я тоже пробовал:

Код: Выделить всё

DB::table('datapoints')->delete();
DB::table('sensors')->delete();
return 'Done...';
Наконец, я также попытался явно добавить «DB::commit()» между операторами удаления, но все они вернули один и тот же результат.
Это это нормальное поведение? Я что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/291 ... constraint
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»