У меня возникли проблемы с добавлением столбца внешнего ключа в уже существующую таблицу на SQLite.
Вот мой код SQL:
CREATE TABLE IF NOT EXISTS director (
director_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS movie (
movie_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
ALTER TABLE movie ADD COLUMN director_id INTEGER NOT NULL REFERENCES
director(director_id);
Это дает мне следующую ошибку:
Uncaught Error: Cannot add a NOT NULL column with default value NULL
Однако, если я уберу ограничение «NOT NULL», оно будет работать нормально:
ALTER TABLE movie ADD COLUMN director_id INTEGER REFERENCES
director(director_id);
Следующее также отлично работает, но у меня уже есть существующая таблица:
CREATE TABLE IF NOT EXISTS director (
director_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS movie (
movie_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
director_id INTEGER NOT NULL,
FOREIGN KEY(director_id) REFERENCES director(director_id)
);
Я что-то упустил или это нельзя сделать в SQLite?