# \#database

**URL:** https://swi-prolog.discourse.group/tag/database/117.md

[Latest](https://swi-prolog.discourse.group/latest.md) · [Categories](https://swi-prolog.discourse.group/categories.md) · [Tags](https://swi-prolog.discourse.group/tags.md)

---

## [Backtracking cannot see predicates changes when retract/assertz itself](https://swi-prolog.discourse.group/t/backtracking-cannot-see-predicates-changes-when-retract-assertz-itself/5417)

<div class="topic-metadata">

**Author:** [@chansey97](https://swi-prolog.discourse.group/u/chansey97)\
**Replies:** 4\
**Last updated:** [June 16, 2022, 7:56pm UTC](https://swi-prolog.discourse.group/t/backtracking-cannot-see-predicates-changes-when-retract-assertz-itself/5417 "2022-06-16T19:56:46Z")

</div>

I did an experiment about retract/1 or assertz/1. See following program: :- dynamic test/1. update(X) :- test(X), format("update ~w~n", \[X\]), ( X=2 -\> format("update X=2 ~n"), retract(test(3)) ; forma…

---

## [Forall/2, foreach/2, double negation, relational division and SQL](https://swi-prolog.discourse.group/t/forall-2-foreach-2-double-negation-relational-division-and-sql/5458)

<div class="topic-metadata">

**Author:** [@chansey97](https://swi-prolog.discourse.group/u/chansey97)\
**Replies:** 3\
**Last updated:** [June 3, 2022, 8:38pm UTC](https://swi-prolog.discourse.group/t/forall-2-foreach-2-double-negation-relational-division-and-sql/5458 "2022-06-03T20:38:56Z")

</div>

Recently I revisited database system and found a problem that is very easy to express in Prolog but difficult in SQL. It is a classic student\_take\_course problem. Given the following database. student table: sname -…

---

## [Does SWI-Prolog have trigger system for dynamic database?](https://swi-prolog.discourse.group/t/does-swi-prolog-have-trigger-system-for-dynamic-database/5411)

<div class="topic-metadata">

**Author:** [@chansey97](https://swi-prolog.discourse.group/u/chansey97)\
**Replies:** 6\
**Last updated:** [May 23, 2022, 7:56am UTC](https://swi-prolog.discourse.group/t/does-swi-prolog-have-trigger-system-for-dynamic-database/5411 "2022-05-23T07:56:37Z")

</div>

For example, suppose I have the following database in PostgreSQL CREATE DATABASE salary; CREATE TABLE emp(NAME text PRIMARY key, salary integer NOT NULL); I can create a trigger which will automatically call a particul…
