<p>我有一个SQLite表定义如下:</p>
<pre><code>create table if not exists KeyValuePair (
key CHAR(255) primary key not null,
val text not null,
fup timestamp default current_timestamp not null, -- time of first upload
lup timestamp default current_timestamp not null -- time of last upload
);
create trigger if not exists entry_first_insert after insert
on KeyValuePair
begin
update KeyValuePair set lup = current_timestamp where key = new.key;
end;
create trigger if not exists entry_last_updated after update of value
on KeyValuePair
begin
update KeyValuePair set lup = current_timestamp where key = old.key;
end;
</code></pre>
<p>我试图用Python为这个表写一个<code>peewee.Model</code>。到目前为止,我得到的是:</p>
^{pr2}$
<p>当我检查最后一行生成的SQL时,我得到:</p>
<pre><code>CREATE TABLE "keyvaluepair" (
"key" CHAR(255) NOT NULL PRIMARY KEY,
"val" TEXT NOT NULL,
"fup" DATETIME NOT NULL,
"lup" DATETIME NOT NULL
);
</code></pre>
<p>所以我现在有两个问题:</p>
<ol>
<li>我无法找到实现<code>entry_first_insert</code>和<code>entry_last_updated</code>触发器行为的方法。<code>peewee</code>是否支持触发器?如果不是,有没有办法只从.sql文件而不是<code>Model</code>类定义创建表?在</li>
<li>有没有办法使<code>fup</code>和<code>lup</code>的默认值分配给SQL定义吗?在</li>
</ol>