Как данные из одного столбца использовать в другом?
id автоинкримент, нужно, чтобы значение следующего за ним столбца формировалось из его значения:
query('INSERT INTO `sitys` VALUES (:id, SUBSTR("0000" || :id, -4, 4), :title. :text');
То есть получается, если id = 1, то следующий столбец = 0001
Как сделать такое?
Вот так работает, но это всё коряво, хотелось бы както поизящнее, в одну команду что ли
query('INSERT INTO `sisys` VALUES (:id, NULL, :title, :text)');
query('UPDATE `sisys` SET number = substr("0000" || id, -4, 4)');
Ответы (1 шт):
Автор решения: ValNik
→ Ссылка
Может Вам подойдет вычисляемый столбец в таблице? Пример:
CREATE TABLE t1(Id INTEGER
, SValue TEXT
, GValue TEXT GENERATED ALWAYS AS (substr('000'||Id,length(Id),4))STORED
);
insert into `t1`(Id,SValue) VALUES(1,'test1');
insert into `t1`(Id,SValue) VALUES(10,'test10');
insert into `t1`(Id,SValue) VALUES(100,'test100');
select * from t1;
Результат
| Id | SValue | GValue |
|---|---|---|
| 1 | test1 | 0001 |
| 10 | test10 | 0010 |
| 100 | test100 | 0100 |