Внешние ключи работают, присоединяя столбцы к уникальному ключу в другой таблице, и этот уникальный ключ должен быть определен как некоторая форма уникального индекса, будь то первичный ключ или какой-либо другой уникальный индекс.
В настоящий момент единственным уникальным индексом, который у вас есть, является составной на ISBN, Title
, который является вашим основным ключом.
Доступен ряд вариантов, в зависимости от того, что именно выполняется в BookTitle, и отношение данных в нем.
Я бы поставил под угрозу, что ISBN уникален для каждой строки в BookTitle. В предположении, что это так, измените свой первичный ключ только на ISBN и измените BookCopy, чтобы вместо Title у вас был ISBN и присоединился к нему.
Если вам нужно сохранить свой первичный ключ в качестве ISBN, Title
вам нужно либо сохранить ISBN в BookCopy, либо Title, и внешний ключ в обоих столбцах, либо вам нужно создать уникальный индекс в BookTitle (Title) в качестве отдельного индекса.
В более общем плане вам нужно убедиться, что столбец или столбцы, которые у вас есть в вашем предложении REFERENCES
, соответствуют точно уникальному индексу в родительской таблице: в вашем случае он терпит неудачу, потому что у вас нет единственного уникального индекса на Title
один.
Это делается в два этапа:
detox.init()
, передайте параметр false initGlobals
, например: detox.init({ initGlobals: false })
. Это отключит переопределение глобальных переменных, таких как expect
Jest. const { device, expect } = require('detox');
или аналогичный импорт ES6.