SQLite语法 CREATE TRIGGER
时间:
2009-08-14 21:18:18来源:
网络 作者:
未
知 点击:
214
次
CREATE TRIGGER
sql-statement ::=
CREATE [TEMP | TEMPORARY] TRIGGER trigger-name [ BEFORE | AFTER ]
database-event ON [database-name .] table-name
CREATE TRIGGER
sql-statement
::=
CREATE
[TEMP
|
TEMPORARY
] TRIGGER
trigger-name
[ BEFORE
|
AFTER
]
database-event
ON
[database-name
.
]
table-name
trigger-action
sql-statement
::=
CREATE
[TEMP
|
TEMPORARY
] TRIGGER
trigger-name
INSTEAD OF
database-event
ON
[database-name
.
]
view-name
trigger-action
database-event
::=
DELETE
|
INSERT
|
UPDATE
|
UPDATE OF
column-list
trigger-action
::=
[ FOR EACH ROW
|
FOR EACH
STATEMENT
]
[ WHEN
expression
]
BEGIN
trigger-step
;
[
trigger-step
;
]*
END
trigger-step
::=
update-statement
|
insert-statement
|
delete-statement
|
select-statement
CREATE
TRIGGER语句用于向数据库schema中添加触发器。触发器是一些在特定的数据库事件(database-event
)
发生时自动进行的数据库操作(trigger-action
).
触发器
可由在特殊表上执行的DELETE, INSERT, UPDATE等语句触发,或UPDATE表中特定的字段时触发。
现在
SQLite仅支持FOR EACH ROW触发器,不支持FOR EACH STATEMENT触发。因此可以不用明确说明FOR EACH ROW
.FOR EACH ROW的意思是由trigger-steps
说明的SQL语句可能在(由WHEN子句决定的)数据库插入,更改或删除
的每一行触发trigger.
WHEN
子句
相关文档:
今天很自然的在写Sql语句的时候用了Top,一开始没发现问题,因为我从数据库读出的值正好是0,而我习惯变量定义的时候也都赋值0,可是到我不要0的时候我就发现问题了。后来才知道,可爱的小sqlite竟然有不支持的sql语法。
看到某个论坛有个新手也发现了这个问题并发帖了,下面一牛人的回复是“top是哪家的关键词?s ......
package
{
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.errors.SQLError;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
import mx.collections.Ar ......
在SQLite on BlackBerry上,JDBC访问数据库,缺省是以UTF-8保存数据到数据库里面的,每个中文通常是3个字节保存到数据库上面的。
例子代码参考:
BlackBerry sample - SQLiteDemo。
注意:在插入中文的时候,请使用Statement.bind指令,在我的测试中,可以很好的保存中文数据。读取的时候只需要使用Result ......
AutoIt3开发的操作SQlite数据库的源码下载
部分源码
_SQLite_Startup () ;加载 SQLite.dll
If Not FileExists($SQLite_Data_Path) Then
SQLCreate()
EndIf
$GUI_Form = GUICreate($Title, 300, 435, -1, -1)
GUISetBkColor(0xECE9D8) ; will change background color
$GUI_ListBox = GUIC ......