SQLITE3 Внешний ключ, отображающий синтаксическую ошибку [дубликат]

Технически вы можете использовать столько отдельных соединений, сколько хотите, в то время как ваша проблема вызвана простой опечаткой - вы не можете использовать ресурсы только из одного расширения с функциями из другого, что вполне очевидно.

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

1
задан user9517536248 23 July 2013 в 18:30
поделиться

1 ответ

Вы не можете смешивать столбцы таблицы и таблицы; ограничения должны быть перечислены после всех столбцов:

CREATE TABLE tblScanHistory (
    ScanHistoryID INTEGER PRIMARY KEY AUTOINCREMENT,
    HostID INTEGER,
    ScanID INTEGER,
    FOREIGN KEY(HostID) REFERENCES tblHostLookup(HostID),
    FOREIGN KEY(ScanID) REFERENCES tblScanLookup(ScanID)
);

Или, проще:

CREATE TABLE tblScanHistory (
    ScanHistoryID INTEGER PRIMARY KEY AUTOINCREMENT,
    HostID INTEGER REFERENCES tblHostLookup(HostID),
    ScanID INTEGER REFERENCES tblScanLookup(ScanID)
);
1
ответ дан CL. 21 August 2018 в 00:36
поделиться
  • 1
    Спасибо, много человек ... это сработало! странно, хотя я думал, что каждый столбец должен оставаться с внешним ключом ... тем не менее, спасибо за его очищение – user9517536248 23 July 2013 в 20:17
  • 2
    Во второй форме FKs do остаются со своими столбцами. Чтобы задать вопрос, используйте «Задать вопрос», кнопка. – CL. 24 July 2013 в 07:09
  • 3
    Спасибо за помощь человеку ... не беспокойтесь о другом вопросе, который я сам решил сам – user9517536248 24 July 2013 в 14:19
Другие вопросы по тегам:

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