: I (varsayılan değer ayarlayabilirsiniz) veritabanı yapısını değiştiremez where can be only select/insert/update/delete stmt. New.t işe yaramadıTetikleyiciyi sqlite'e yerleştirmeden önce Yeni'yi güncelleyebilir miyim? Örneğin
create table test (id numeric, t date not null);
create trigger test_in
before insert on test
for each row
when New.t is null
begin
-- set New.t = now();
end;
Set. Tetikleyiciyi ekledikten sonra "null" kısıtlaması nedeniyle de uygun değildir. buldum tek çözüm:
insert into test values (New.id, now());
select raise(ignore);
test veritabanı yalnızca bilgi amaçlıdır, uygulamada hesaplanan verilerle daha karmaşık durumlar vardır. Bunun gibi bir şey olabilir "Yeni set New.t = şimdi()", veya değil güncelleme?
INSTEAD OF tetikleyicili bir görünüm oluşturabilir ve bunun yerine görünüme ekleyebilir misiniz? –
Ayrıca kararın bir çeşidi, ancak sorunu çözmüyor. Benim durumumda tablolar senkronizasyon sürecinde oluşturulur. Sonra herhangi bir ddl çalıştırabilirim. – lunicon
Ana veritabanı modelinde ayrıca set stmt ile tetikleme kullanılır. Görünümü oluşturabilirim, ancak değiştirip programlayacağım (eğer yapabilirsem ...) – lunicon