SQLite的触发器怎么写?具体看补充
发布网友
发布时间:2022-04-25 14:38
我来回答
共2个回答
热心网友
时间:2022-04-12 20:09
首先我们先选择要使用的web server 软件,由于从兼容性跟性能方面的需求,我选择了目前来说最新版的apache。
第二步,我们要使用目前最新版本的PHP zip package .这里提示大家一下,经过我痛苦的反复的实验跟查看资料,如果大家想要使用PDO扩展连接到SQLite数据库的话,请你一定不要选择安装包,因为它不支持很多PHP的扩展库文件。
第三步,我们要去http://pecl4win.php.net/ext.php/php_pdo_sqlite.dll和http://pecl4win.php.net/ext.php/php_pdo.dll下载PDO的两个扩展库文件,文件名各自为:php_pdo.dll 跟 php_pdo_sqlite.dll 。下来以后保存在一边,我们稍候会使用到。顺便提一下哦,关于PHP_PDO的驱动资料请大家查阅 http://pecl4win.php.net/index.php里面有详细的不同平台的安装信息。
最后一步,大家需要到SQLite官方网站去下载SQLite的文件包。地址为:
http://www.sqlite.org/download.html 选择适合自己的版本即可。
热心网友
时间:2022-04-12 21:27
create trigger update_modify_date
after insert on atv
BEGIN
update atv set moddate = date('now') where chno = new.chno ;
END ;
可是我还有问题, 如何让用触发器使modid自动增长,
我用了下面的语法,
create trigger add_id
before insert on atv
begin
update atv set modid = max(modid) +1 ;
end;
运行
sqlite> insert into atv (jmno ,chno ) values (767,68);
出现。
SQL error: misuse of aggregate function max()
sqlite>
更改中。,
原来是for each row 这句话的问题。指定 for each row .后。就不再报错了。
create trigger update_modify_date
before insert on atv for each row
BEGIN
update atv set new.moddate = date('now') ;
END ;
it worked.