Полагаю, этот вопрос уже задавался где-то здесь, но я понятия не имею, как правильно его назвать (и искать).
База данных:
CREATE TABLE department (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(100) NOT NULL UNIQUE
);
CREATE TABLE employee (
id INTEGER PRIMARY KEY AUTOINCREMENT,
department_id INTEGER NOT NULL,
chief_id INTEGER,
name VARCHAR(100) NOT NULL UNIQUE,
salary INTEGER NOT NULL,
FOREIGN KEY (department_id) REFERENCES department (id),
FOREIGN KEY (chief_id) REFERENCES employee (id)
);
INSERT INTO department (name) VALUES ('sales'), ('it'), ('management');
INSERT INTO employee (department_id, chief_id, name, salary) VALUES
(3, NULL, 'Owner', 1000000),
(2, 1, 'Team manager', 9000),
(2, 3, 'Senior dev #1', 7000),
(2, 3, 'Senior dev #2', 7000);
Сейчас в вставкеЯ должен вычислить chief_id
самостоятельно, но мне любопытно, есть ли возможность получить идентификатор по имени, что-то вроде
SELECT id FROM employee WHERE name = 'Owner'
и использовать это значение вместо жестко закодированного идентификатора во вставке.
Я пытался поместить оператор выбора вместо идентификатора, но это не работает.
Я использую SQLite.