blob: 9ec675790615755f51fab239d73543a6b8776ced [file] [log] [blame]
= Triggers
Triggers are identified with a name defined by:
[source,bnf]
----
include::example$BNF/trigger_name.bnf[]
----
[[create-trigger-statement]]
== CREATE TRIGGER
Creating a new trigger uses the `CREATE TRIGGER` statement:
[source,bnf]
----
include::example$BNF/create_trigger_statement.bnf[]
----
For instance:
[source,cql]
----
include::example$CQL/create_trigger.cql[]
----
The actual logic that makes up the trigger can be written in any Java
(JVM) language and exists outside the database. You place the trigger
code in a `lib/triggers` subdirectory of the Cassandra installation
directory, it loads during cluster startup, and exists on every node
that participates in a cluster. The trigger defined on a table fires
before a requested DML statement occurs, which ensures the atomicity of
the transaction.
[[drop-trigger-statement]]
== DROP TRIGGER
Dropping a trigger uses the `DROP TRIGGER` statement:
[source,bnf]
----
include::example$BNF/drop_trigger_statement.bnf[]
----
For instance:
[source,cql]
----
include::example$CQL/drop_trigger.cql[]
----