Внешние ограничения ключа не работают [дубликаты]

С ES5 + (любой просматриваемый в настоящее время - 2017) вы должны иметь возможность делать

[].forEach.call(document.getElementsByClassName('answer'), function(el) {
    el.style.color= 'red';
});

23
задан a_horse_with_no_name 30 March 2012 в 08:04
поделиться

4 ответа

В SQLite 3.x вам нужно сделать следующий запрос каждый раз при подключении к базе данных SQLite:

PRAGMA foreign_keys = ON;

В противном случае SQLite будет игнорировать все ограничения внешнего ключа.

Почему каждый раз? Обратная совместимость с SQLite 2.x в соответствии с документацией .

В SQLite 4.x ограничения FK будут установлены по умолчанию .

53
ответ дан kijin 21 August 2018 в 06:08
поделиться
  • 1
    Каждый раз? Невозможно включить его на постоянной основе? – mafu 9 March 2014 в 11:27
  • 2
    @mafu Да, каждый раз. Я отредактировал ответ, чтобы объяснить, почему. – kijin 10 March 2014 в 10:54
  • 3
    Просто наткнулся на это сегодня. Это самая тупая вещь. – Chase Florell 24 March 2014 в 05:56

Поддержка внешних ключей SQLite

sqlite> PRAGMA foreign_keys = ON;

Это позволит ограничить внешние ключи.

2
ответ дан animuson 21 August 2018 в 06:08
поделиться

Проверьте, есть ли в вашем SQLite ограничения внешнего ключа: http://sqlite.org/foreignkeys.html#fk_enable

0
ответ дан Dmitry A. Shashkin 21 August 2018 в 06:08
поделиться
  • 1
    он ничего не показывает, когда я вхожу в команду PRAGMA foreign_key; – Abbas Mulani 30 March 2012 в 07:13

Вы прочитали документацию? На главной странице говорится, что она представлена ​​с версией 3.6.19. Ссылка показывает, как использовать внешние ключи (ваш код верен).

Предоставляет ли ваш код какие-либо сообщения об ошибках, которые вы пропустили? Вы проверяли все предварительные условия, указанные в документации?

0
ответ дан mrab 21 August 2018 в 06:08
поделиться
  • 1
    то, пожалуйста, скажите мне, как удалить мою старую версию и установить новую версию sqlite3. – Abbas Mulani 30 March 2012 в 07:14
  • 2
    @AbbasMulani, как удалить и установить зависит от ваших os и других вещей. Проверьте, какая версия установлена ​​и как она была установлена. Шаг для установки новой версии не такой большой. – mrab 30 March 2012 в 07:26
Другие вопросы по тегам:

Похожие вопросы: