SQLite3 Внешний ключ Python не работает [дубликат]

Вот интересное и практическое использование currying в JavaScript, которое использует замыкания :

function converter(toUnit, factor, offset, input) {
    offset = offset || 0;
    return [((offset + input) * factor).toFixed(2), toUnit].join(" ");
}

var milesToKm = converter.curry('km', 1.60936, undefined);
var poundsToKg = converter.curry('kg', 0.45460, undefined);
var farenheitToCelsius = converter.curry('degrees C', 0.5556, -32);

milesToKm(10);            // returns "16.09 km"
poundsToKg(2.5);          // returns "1.14 kg"
farenheitToCelsius(98);   // returns "36.67 degrees C"

Это зависит от расширения curry Function, хотя, как вы видите, он использует только apply (ничего необычного):

Function.prototype.curry = function() {
    if (arguments.length < 1) {
        return this; //nothing to curry with - return function
    }
    var __method = this;
    var args = toArray(arguments);
    return function() {
        return __method.apply(this, args.concat([].slice.apply(null, arguments)));
    }
}

8
задан Joulukuusi 15 December 2012 в 21:52
поделиться

2 ответа

Как соответствующие документы говорят (в разделе 2. Включение поддержки внешнего ключа):

Предполагая, что библиотека скомпилирована с ограничениями внешнего ключа, она все равно должна быть включенным приложением во время выполнения, используя команду PRAGMA foreign_keys. Например:

sqlite> PRAGMA foreign_keys = ON;

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

Вы использовали это PRAGMA в соответствующем соединении? (Предполагая, как говорят документы, что sqlite скомпилирован соответствующим образом, а также версия с достаточно недавним выпуском, чтобы, конечно, обеспечить принудительное ограничение внешнего ключа).

12
ответ дан Alex Martelli 27 August 2018 в 09:46
поделиться

Вы также можете включить поддержку внешнего ключа через встраивание в строку соединения:

foreign keys=True

Пример:

"Data Source={DatabaseFullFilePath};Version=3;foreign keys=True;datetimeformat=CurrentCulture"
3
ответ дан Richard Anderssen 27 August 2018 в 09:46
поделиться
Другие вопросы по тегам:

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