Matt Young <youngsan...@gmail.com> wrote: > In the documentation on trigger, begin has no semicolon, and it works. > From the command line, I can begin and end transaction, but I need the > semicolon after begin. Is there a difference?
BEGIN keyword is used in two different contexts, and has different meanings in these two contexts. It could start a BEGIN TRANSACTION statement (the TRANSACTION keyword can be omitted, so the statement becomes simply BEGIN). Or it could indicate the start of a trigger body in CREATE TRIGGER statement. In sqlite command line application, any statement has to be terminated with a semicolon (that's how it knows the statement is complete and is ready to parse and execute). That's why you write BEGIN; to start a transaction. In CREATE TRIGGER statement, the statement ends with the END keyword, so you put the semicolon there. The syntax of the statement itself doesn't call for a semicolon after BEGIN keyword. -- Igor Tandetnik _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users