У меня есть две таблицы, которые определены ниже; Из таблицы пользователя, hospitalId и poliklinikId оба ссылки table relhospol, и если какая-либо строка удалена из relhospol (если какой-либо пользователь связан с ней), я хочу установить hospitalId и poliklinikId null, DDL говорит об этом. Когда я удаляю строку из SQLite Manager, она сбрасывает больничные данные пользователя и PoliklinikId, однако, когда я пытаюсь удалить строку с уровня приложения (Java), она удаляет только из relhospol, она не устанавливает значение null (hospitalId, PoliklinikId). Что такое отсутствует точка?
JDBC Driver: SQLite-3.7.2 JDBCПроблемы с внешними ключами при удалении
CREATE TABLE [USER] (
[ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[GROUPID] INTEGER CONSTRAINT [FK_USER_GID] REFERENCES [GROUP]([ID]) ON DELETE SET NULL ON UPDATE CASCADE,
[HOSPITALID] INTEGER,
[POLIKLINIKID] INTEGER,
[NAME] VARCHAR(50) NOT NULL,
[LOGINID] VARCHAR(15) NOT NULL,
[EMAIL] VARCHAR(50) NOT NULL,
[PASSWORD] VARCHAR(32) NOT NULL,
CONSTRAINT [FK_USER_RELHOSPOL] FOREIGN KEY([HOSPITALID], [POLIKLINIKID]) REFERENCES [RELHOSPOL]([HOSPITALID], [POLIKLINIKID]) ON DELETE SET NULL ON UPDATE CASCADE);
CREATE UNIQUE INDEX [AS] ON [USER] ([LOGINID]);
CREATE UNIQUE INDEX [AS1] ON [USER] ([EMAIL]));
CREATE TABLE [RELHOSPOL] (
[HOSPITALID] INTEGER CONSTRAINT [FK_RELHOSPOL_HOS] REFERENCES [HOSPITAL]([ID]) ON DELETE SET NULL ON UPDATE CASCADE,
[POLIKLINIKID] INTEGER CONSTRAINT [FK_RELHOSPOL_POL] REFERENCES [POLIKLINIK]([ID]) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT [sqlite_autoindex_RELHOSPOL_1] PRIMARY KEY ([HOSPITALID], [POLIKLINIKID]));
Любая идея? Есть ли проблемы с DDL? – anarhikos 2010-11-28 20:01:50