mirror of
https://github.com/wahyd4/knowledge.git
synced 2026-08-09 05:06:28 +10:00
1.4 KiB
1.4 KiB
Relation
- Mysql
- Postgres
- Microsoft SQL Server
- Oracle
- Sqlite
NoSql
- Monodb
- Replica Set
- Primary
- Secondary
- Hidden
- Replica Set
- Redis
- Cluster
- Strong recommend 3 masters and 3 slaves
- Cluster
- Hbase
- Cassendra
SQL
- Index
- Index is unique but not mandatory
- join
- MYSQL
- tips
- datetime
- 8 bytes
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 - store a absolute value
- 8 bytes
- timestamp
- 4 bytes
1970-01-01 08:00:01 ~ 2038-01-19 11:14:07 - will impacted by time zone
- index by timestamp will be faster than datetime due to 4 bytes.
- 4 bytes
- datetime
- tips
Postgres trigger example
Giving we have a table called users, and the columns are:
id name age
1 tom 10
2 Dave 17
there is a requirement which is when some user's age turn to 18 move that person to adults table.
The adults table have the same fields with users.
The potential trigger implementation can be
CREATE OR REPLACE FUNCTION to_adults ()
RETURNS TRIGGER
AS $$
BEGIN
INSERT INTO adults VALUES (new.*);
DELETE FROM users WHERE age >= 18;
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER to_adults_trigger
AFTER UPDATE ON users
FOR EACH ROW
WHEN (NEW.age >= 18)
EXECUTE PROCEDURE to_adults();
