Как заполнить SQL при создании?
Я хочу, чтобы после создания в моем таблице SQL уже были изначальные, дефолтные данные. Я реализую это так: при запуске приложения смотрю, пустая таблица или нет, и отталкиваясь от этого добавляю данные. Но этот способ мне кажется не очень правильным. Подскажите, как сделать это более красивым способом.
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Если в таблице всегда должна быть только одна строка со значениями по умолчанию, то создавайте таблицу как CTAS (create-table-as-select):
create table t1 as
select 'value1' col1, 'value2' col2, 'value3' col3;
select * from t1;
col1 col2 col3
------ ------ ------
value1 value2 value3
Чтобы избежать ошибочной вставки или удаления используйте ограничения или триггеры. Что иммено, сильно зависит от брeнда СУБД. Вот воспроизводимый пример для SQLite:
create trigger delt1 delete on t1
begin
select raise (fail, 'illegal delete on t1');
end;
delete from t1;
illegal delete on t1